将ScanCallback用于LE设备时,我得到以下条件为真:
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功能,这意味着设备可以同时作为主设备/从设备。
我希望这有帮助。