有没有像device.isConnected()这样的方法可以知道Android BLE设备的当前状态?我知道我需要实现类似于从GattclientCallBack类的接口来知道设备是否连接,但我没有找到类似的方法。此外,该方法
mBluetoothGatt.getConnectionState(device);
返回一个整数。那么我如何知道设备是否已连接?
有没有像device.isConnected()这样的方法可以知道Android BLE设备的当前状态?我知道我需要实现类似于从GattclientCallBack类的接口来知道设备是否连接,但我没有找到类似的方法。此外,该方法
mBluetoothGatt.getConnectionState(device);
返回一个整数。那么我如何知道设备是否已连接?
getConnectionState
返回的 int
值为 0、1、2 或 3,分别对应于 STATE_DISCONNECTED
、STATE_CONNECTING
、STATE_CONNECTED
或 STATE_DISCONNECTING
。详见文档。请注意,此方法仅适用于 API 级别 18 及以上。
但是,该方法的文档包含以下警告:
这指的是方法不支持 - 请使用带有
GATT
参数的getConnectedDevices(int)
BluetoothManager.getConnectedDevices
。要传递的常量值为BluetoothProfile.GATT
。同样,该方法仅适用于 API 级别 18 及以上。看起来,该方法非常适合您的用例。
onConnectionStateChange
,那么status
应该确实为0(表示成功),但是newState
应该为2,以表示新连接的设备。 - stkent