android Bluetooth A2DPデバイスがデバイスに接続されているかどうかをアクティビティでどのように知ることができますか?
ブロードキャスト受信機はありますか?
この放送受信機の書き方は?Bluetoothデバイスが接続されているかどうかを検出する方法
答えて
API 11(Android 3.0)からは、BluetoothAdapterを使用して、特定のBluetoothプロファイルに接続されているデバイスを検出できます。私は以下のコードを使用して、デバイスをその名前で発見しました:
BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
BluetoothProfile.ServiceListener mProfileListener = new BluetoothProfile.ServiceListener() {
public void onServiceConnected(int profile, BluetoothProfile proxy) {
if (profile == BluetoothProfile.A2DP) {
boolean deviceConnected = false;
BluetoothA2dp btA2dp = (BluetoothA2dp) proxy;
List<BluetoothDevice> a2dpConnectedDevices = btA2dp.getConnectedDevices();
if (a2dpConnectedDevices.size() != 0) {
for (BluetoothDevice device : a2dpConnectedDevices) {
if (device.getName().contains("DEVICE_NAME")) {
deviceConnected = true;
}
}
}
if (!deviceConnected) {
Toast.makeText(getActivity(), "DEVICE NOT CONNECTED", Toast.LENGTH_SHORT).show();
}
mBluetoothAdapter.closeProfileProxy(BluetoothProfile.A2DP, btA2dp);
}
}
public void onServiceDisconnected(int profile) {
// TODO
}
};
mBluetoothAdapter.getProfileProxy(context, mProfileListener, BluetoothProfile.A2DP);
これはすべてのBluetoothプロファイルで可能です。 AndroidガイドでWorking with profilesをご覧ください。
しかし、他の回答に記載されているように、ブロードキャスト受信者を登録して接続イベントを聞くことができます(Androidの< 3.0で作業しているときなど)。
任意のAPIを呼び出して、接続されているデバイスのリストを取得することはできません。 代わりに、デバイスが接続または切断されていることを通知するACTION_ACL_CONNECTED、ACTION_ACL_DISCONNECTEDの意図を聞く必要があります。 接続されたデバイスの初期リストを取得する方法はありません。
私のアプリでこの問題がありました。私はそれを処理しています(良くはありませんでした)。アプリケーションの起動時にBluetoothをオフ/オンにして、接続されているデバイスの空のリストから開始してください上記の意図に耳を傾けてください。
muslidrikkさんの回答は大体正しいです。しかし、代わりにfetchUUIDsWithSDP()を使用して、戻ってくるものを見ることができます。これはちょっとハックですが、電源が入っていればデバイスから期待できるUUID(能力)を知る必要があります。それは保証するのが難しいかもしれません。あなたの活動で
、放送受信機を定義...
// Create a BroadcastReceiver for ACTION_FOUND
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// When discovery finds a device
if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// Get the BluetoothDevice object from the Intent
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
// Add the name and address to an array adapter to show in a ListView
mArrayAdapter.add(device.getName() + "\n" + device.getAddress());
}
}
};
// Register the BroadcastReceiver
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(mReceiver, filter); // Don't forget to unregister during onDestroy
あなたが提供したソリューションは、あなたがアクセスできるデバイスをスキャンします。 –
特にBluetoothHeadsetでは、getConnectedDevices()を呼び出して、この特定のプロファイルの接続デバイスを取得できます。
参考:あなたはそのための受信機を登録する必要がありhttp://developer.android.com/reference/android/bluetooth/BluetoothHeadset.html
他の例。
- 1. Bluetoothヘッドセットが接続されているかどうかを検出
- 2. iPadのアプリケーションでBluetoothデバイスが接続されているかどうかを検出
- 3. Android Bluetoothデバイスが接続されているときに検出します。
- 4. AVAudioSessionが接続されたBluetoothデバイスを検出していません
- 5. Bluetoothが接続されているかどうかを確認する
- 6. Buetoothが接続されているかどうかを検出するには?
- 7. スピーカーが接続されているかどうかを検出しますか?
- 8. USBがiPhoneデバイスに接続されているかどうかを検出する
- 9. iPhoneデバイスがデバッグ目的のためにマシンに接続されているかどうかを検出する
- 10. HID USB/Bluetoothデバイスがココアに接続されているかどうかを知るには?
- 11. ヘッドフォンがJavaのヘッドフォンジャックに接続されているかどうかを検出
- 12. バーコードスキャナがPCに接続されているかどうかを検出する方法
- 13. 携帯電話がAndroid Autoに接続されているかどうかを検出する方法
- 14. Linux:USBキーボードが接続されているかどうかを検出する方法
- 15. デバイスがウェブに接続されているかどうかを確認する
- 16. Iphone Bluetoothが非MFIデバイスに接続されています
- 17. Android SDKを使用してBluetoothデバイスからのアクティブな接続を検出する方法
- 18. デバッガが接続されているかどうかの検出*および*
- 19. Symbian - デバイスがインターネットに接続されているかどうかを調べる
- 20. iOSデバイスをBluetooth以外のiOSデバイス(Arduinoデバイス)に接続するにはどうすればよいですか?
- 21. AndroidのBluetooth - 正しいBluetoothデバイスに接続するにはどうすればいいですか?
- 22. Android - 別のハードウェアに接続されているデバイスを検出しますか?
- 23. コマンドラインでコンピュータに接続されているデバイスを検出しますか?
- 24. デバイスがシステムに接続されているかどうかを確認する方法は?
- 25. デバイスが電源、USBまたはDockに接続されているかどうかを確認する方法
- 26. デバイスがjQuery Mobileでサポートされているかどうかを検出する
- 27. Androidデバイスが外付けキーボードに接続されているかどうかを検出するにはどうすればよいですか?
- 28. Garmin GPSデバイスが大容量ストレージモードで接続されているかどうかを検出するにはどうすればよいですか?
- 29. iOSデバイスがリダイレクトされているかどうかだけを検出する方法はありますか?
- 30. MQが接続されているかどうかを確認する方法
BluetoothはAPI 16(API 19ではBluetoothManagerが導入され、非常にうまくいっている)から改良されていますが、古いAPIレベルの場合はこれが適切な解決策です。 –