私はアンドロイドマーケットにアプリを持っており、ユーザーはデバイスを自分のコンピュータに接続して、音楽をappsフォルダに追加することがよくあります。私は具体的に説明しているアンドロイドのアプリケーションは、USB接続モードが有効になっている間、SDカードと通信することはできません。明らかに、これは十分に愚かな証拠ではありません。 USBが接続されている場合、Javaで検出する方法はありますか?私はそれが放送受信機で行われていることを見てきましたが、これはそれを行うのは馬鹿げた方法です。これは、ユーザーがUSBに接続した後でアプリケーションを起動した場合は機能しません。より良い方法があるはずです。アンドロイドでUSB接続モードが有効になっているかどうかを確認する方法は?
2
A
答えて
1
これは、次のようになります。Check USB Connection Status on Android
彼らは放送受信機を利用して行いますが。これは愚かなことをする方法だと言いますが、それについてもっと具体的にすることはできますか?
アプリの起動後に検出できない場合はありません。引用
public class IntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals(Intent.ACTION_UMS_CONNECTED)){
Toast.makeText(context, "mounted", Toast.LENGTH_LONG).show();
Intent myStarterIntent = new Intent(context, tst.class);
myStarterIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myStarterIntent);
}
}
}
`
出典:http://www.anddev.org/start_activity_on_usb_connect-t8814.html
1
何をする必要があるだろうことは以下のクラスのための
<Receiver>
エントリの下に、あなたのAndroidManifest.xmlに
<intent-filter>
<action android:name="android.intent.action.ACTION_UMS_CONNECTED"/>
<action android:name="android.intent.action.ACTION_UMS_DISCONNECTED"/>
を置くことであろう
A1:あなたは「ユーザーがデバイスをコンピュータに接続して音楽をアプリケーションフォルダに追加することが多い」と言いました.Sd ca RDはMassStorage
モードでPCに接続された、次のようにこれを確認することができます。
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_SHARED.equals(state)) {
// Sd card has connected to PC in MSC mode
}
A2:あなたは、「ユーザーがUSBに接続した後、アプリを起動する場合、これは動作しません」、私は同意できないと述べましたあなたとICSで、あなたは受信者を登録することができますandroid.hardware.action.USB_STATE
の変更は、システムによってブロードキャストされた意向はSTICKYモードでは、あなたのアプリの受信機がUSBケーブル接続後に登録されていると言うことも、このメッセージを得ることができます:
Intent intent = context.registerReceiver(...);
if (intent != null) {
boolean isConnected = intent.getBooleanExtra(USB_CONNECTED, false);
boolean isMscConnection = intent.getBooleanExtra(USB_FUNCTION_MASS_STORAGE, false);
}
上記の方法で返された意図は、メッセージあなたはPCにUSBケーブルを接続する前に逃しました。
は、詳細については、以下のリンクを参照してください。 http://www.androidadb.com/source/toolib-read-only/frameworks/base/core/java/android/hardware/usb/UsbManager.java.html
関連する問題
- 1. Node.jsでMongoDB接続が有効かどうかを確認する方法
- 2. デバイスが電源、USBまたはDockに接続されているかどうかを確認する方法
- 3. 飛行機モードがiPhoneで有効になっているかどうかを確認しますか?
- 4. ネットワークロケーションプロバイダが有効になっているかどうかを確認する方法はありますか?
- 5. JavaSEコマーシャル機能が有効になっているかどうかを確認する方法は?
- 6. デバイス上でブルートゥースが有効になっているかどうかを確認する方法
- 7. bxsliderで自動再生が有効になっているかどうかを確認する方法
- 8. デバイスでSmartLockが有効になっているかどうかを確認する方法
- 9. カスタムキーボードが設定で有効になっているかどうかを確認する方法
- 10. iOSデバイスでPINコードが有効になっているかどうかを確認する方法
- 11. レプリケーションが有効になっているかどうかを確認
- 12. ウィジェットが有効になっているかどうかを確認
- 13. ASP.NETセッションが有効になっているかどうかを確認
- 14. wifiオプションが有効かどうかを確認する方法
- 15. ポインタが有効かどうかを確認する方法?
- 16. SQL Server:CLRが有効かどうかを確認する方法?
- 17. 角スピナーが有効かどうかを確認する方法
- 18. CArchiveが有効かどうかを確認する方法
- 19. NumLockが有効になっているかどうかを確認する方法
- 20. Dark Appearanceが有効になっているかどうかを確認する方法tvOS
- 21. SeAssignPrimaryTokenPrivilegeが有効になっているかどうかを確認する方法?
- 22. MQが接続されているかどうかを確認する方法
- 23. USB/AC接続があるか確認してください
- 24. アンドロイドで背景データが有効になっているかどうかを確認するにはどうすればよいですか?
- 25. Usb接続モードの設定方法は?
- 26. Android USB接続モードを有料に変更するにはどうすればよいですか?
- 27. スマート逆変換がJavaScriptで有効になっているかどうかを確認するには?
- 28. IDataErrorInfo:すべてのプロパティが有効かどうかを確認する方法?
- 29. jQuery:href属性が有効かどうかを確認する簡単な方法
- 30. aspセッションが有効かどうかを確認するには?
は、「それはアプリが起動した後、あなたがそれを検出することができない場合ではありません。」私はあなたが言ったことの反対を意味しました。あなたは、USBが接続されているか切断されている場合にのみブロードキャストを受信するので、接続されているかどうかは分かりません。 – NJGUY