如何可靠地检测粘合设备是否支持GATT?

时间:2015-09-09 10:07:27

标签: android bluetooth-lowenergy gatt

我正在尝试检测绑定的蓝牙设备是否支持GATT

扫描时,调用BluetoothDevice.getType()会将我的设备识别为类型3(双模式 - BR / EDR / LE )。但是,在绑定设备并调用BluetoothAdapter.getBondedDevices()之后,同样的方法会将我的设备作为类型1( Classic )返回。

@Override
public void onScanResult(int callbackType, android.bluetooth.le.ScanResult result) {
    result.getDevice().getType();// value is 3
}
...
// this will show pairing request to user
device.connectGatt(context, false, callback);
...
// once the device is paired, I query for the new set of bonded devices.
Set<BluetoothDevice> set = BluetoothAdapter.getDefaultAdapter().getBondedDevices();
for (BluetoothDevice device : set)
{
    device.getType();// value is 1
}

如何可靠地检测绑定设备是否支持GATT(类型3或2)?

我还尝试用以下方式交叉检查绑定设备:

int[] ALL_STATES = { BluetoohtProfile.STATE_DISCONNECTED, BluetoohtProfile.STATE_CONNECTING, BluetoohtProfile.STATE_CONNECTED, BluetoohtProfile.STATE_DISCONNECTING };
List<BluetoothDevice> list = BluetoothManager.getDevicesMatchingConnectionState(BluetoothProfile.GATT, ALL_STATES);

但结果总是一个空列表。

感谢任何帮助!

0 个答案:

没有答案