当对 LE 设备使用 ScanCallback 时,我得到以下条件:
bluetoothDevice.getType() == BluetoothDevice.DEVICE_TYPE_DUAL
设备应该只支持BLE,那么我怎么会得到双类型?
这是否意味着我可以在此设备上使用经典的蓝牙连接逻辑? (如果我尝试就会失败)
最佳答案
这是正确的,双类型设备意味着它支持经典蓝牙 (BR/EDR) 以及低功耗 (LE) 蓝牙。您可以找到更多相关信息here .
默认情况下,几乎所有 Android 设备(手机/平板电脑)都支持双类型。这是因为这些设备(以及台式机、笔记本电脑和其他设备)有足够的资源来支持蓝牙的所有子集。请注意,一个常见的陷阱是假设设备可以是 LE 设备或经典设备,但不能两者兼而有之。这个答案澄清了这一点:-
Can a Bluetooth LE powered device discover a classic Bluetooth device and vice-versa?
仅限 LE 的设备往往是资源有限的传感器和电池供电设备,因此无法支持经典蓝牙。
至于为什么您的手机无法通过经典蓝牙进行连接,这可能是一个单独的问题。请尝试使用不同的应用程序或从 Android 设置进行连接。一个好的方法是使用另外两个经典设备相互连接(证明任何设备都没有问题),如果成功,您可以尝试将手机连接到其中一个。
最后,请注意双模式设备和双角色设备之间存在差异。双模式设备是指同时支持经典和 LE 的设备,而双角色设备仅是 LE 的功能,这意味着设备可以同时作为主/从设备。
我希望这会有所帮助。
关于Android 蓝牙设备类型 DUAL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54922664/