0

通常、ユーザーは通知バーに移動する必要があります -> [コンピューターとの間でファイルをコピーすることを選択します] をクリックすると、マウント/アンマウントなどを提供するアクティビティが表示されます。オプション。アプリケーションからこれを開こうとした経験を共有できますか?

ここのアプリケーション内からこれを開く方法を 1 人の男が見つけたようですが、HTC 電話のみです。そのアクティビティが他のデバイスでも同様に何であるかを知る方法はありますか?

編集:以下のコメントを参照してください。デバイスに依存しない可能性があり、クラスのフルネームは com.android.server.status.UsbStorageActivity です

4

1 に答える 1

0

残念ながら、このダイアログを開くことができるのはシステムだけのようです。

UsbStorageActivity を起動しようとしました

    Intent intent = new Intent();
    intent.setClassName("android", "com.android.server.status.UsbStorageActivity");
    getContext().startActivity(intent);

しかし、次の例外があります。

03-21 09:13:55.653: WARN/ActivityManager(2491): Permission denied: checkComponentPermission() reqUid=1000
03-21 09:13:55.653: WARN/ActivityManager(2491): Permission Denial: starting Intent { cmp=android/com.android.server.status.UsbStorageActivity } from ProcessRecord{47d615c8 3399:com.saltillo.chatpc/10080} (pid=3399, uid=10080) requires null
03-21 09:13:55.657: DEBUG/AndroidRuntime(3399): Shutting down VM
03-21 09:13:55.657: WARN/dalvikvm(3399): threadid=1: thread exiting with uncaught exception (group=0x4001d7d0)
03-21 09:13:55.665: ERROR/AndroidRuntime(3399): FATAL EXCEPTION: main
03-21 09:13:55.665: ERROR/AndroidRuntime(3399): java.lang.SecurityException: Permission Denial: starting Intent { cmp=android/com.android.server.status.UsbStorageActivity } from ProcessRecord{47d615c8 3399:com.saltillo.chatpc/10080} (pid=3399, uid=10080) requires null

これは、システム uidを共有しないとこのプロセスを起動できないことを意味すると解釈します。私の知る限り、これは不可能です。そうでなければ、誰かが私を修正してください!

于 2011-03-21T13:36:27.130 に答える