我可以枚举配对的Bluetooth
设备,我需要在应用启动时检查它们当前的连接状态。
但是,我发现无法获得连接状态?!
以下是我尝试但失败的一些努力:
它具有获取远程设备的绑定状态的方法,并且绑定状态的可能值为:BOND_NONE
,BOND_BONDING
,BOND_BONDED
。但这不是连接状态。
该方法可用于获取连接状态,但必须首先获取BluetoothProfile
对象。
public abstract int getConnectionState (BluetoothDevice device);
如doc中所述:“客户端应调用getProfileProxy(Context,BluetoothProfile.ServiceListener,int),以获取配置文件代理。”,它只能在ServiceListener
中检索状态改变时调用。
如果我在启动时查询状态而没有发生任何状态更改,该怎么办?
它提供了一种方法:
public int getConnectionState (BluetoothDevice device, int profile);
但它不能用于检测Bluetooth
发言者的连接状态,因为配置文件参数只接受GATT
或GATT_SERVER
(对于低能耗设备),其他配置文件({{ <}>,HEADSET
,HEALTH
}不受支持。
它提供了一种方法:
A2DP
此功能可用于检查本地public int getProfileConnectionState (int profile);
适配器是否连接到特定配置文件的任何远程设备。它可用于检查指定的配置文件。但它不能用于检查给定的设备。
有谁知道如何获取给定Bluetooth
设备的连接状态?
提前致谢。
答案 0 :(得分:1)
请参阅类似问题How to programmatically tell if a Bluetooth device is connected? (Android 2.2)的答案中的注释: