自动安卓发布了4.0版本的蓝牙协议之后,越来越多的开发者收到了各种针对于BLE蓝牙的开发需求。
而且有很多时候还需要兼容以前的3.0版本,给大家的开发带来了困扰,笔者也遇到了这样的问题,偶然间发现了getType()这个函数的妙用。
public int getType () Added in API level 18
Get the Bluetooth device type of the remote device.
Returns the device type DEVICE_TYPE_CLASSIC, DEVICE_TYPE_LE DEVICE_TYPE_DUAL. DEVICE_TYPE_UNKNOWN if it’s not available
public static final int DEVICE_TYPE_CLASSIC Added in API level 18
Bluetooth device type, Classic – BR/EDR devices Constant Value: 1 (0x00000001)
public static final int DEVICE_TYPE_DUAL Added in API level 18
Bluetooth device type, Dual Mode – BR/EDR/LE Constant Value: 3 (0x00000003)
public static final int DEVICE_TYPE_LE Added in API level 18
Bluetooth device type, Low Energy – LE-only Constant Value: 2 (0x00000002)
public static final int DEVICE_TYPE_UNKNOWN Added in API level 18
Bluetooth device type, Unknown Constant Value: 0 (0x00000000)
跟据这个接口,你可以方便的定义一个函数用来分辨搜索到的蓝牙设备的版本。如
publicstatic StringdeviceTypeTyString(intparamInt) {
switch (paramInt) {
default:
return "UNKNOWN";
case1:
return "CLASSIC";
case3:
return "CLASSIC and BLE";
case2:
}
return"BLE only";
}
public staticboolean isBLEDevice(BluetoothDevice device) {
return(device.getType()== 2);
}