我正试图通过蓝牙进行设备间通信,但遇到了问题。我使用以下代码获得BluetoothManager
和BluetoothAdapter
:
manager = (BluetoothManager)context.getSystemService(Context.BLUETOOTH_SERVICE);
adapter = manager.getAdapter();
在获得适配器后,我将尝试获得设备二的BluetoothLeAdvertiser
,以便能够找到并连接到设备一。然而,我遇到了一个奇怪的案子。
adapter.isMultipleAdvertisementSupported()
返回false
,adapter.getBluetoothLeAdvertiser()
返回null
,这是预期的,但以下情况除外:
adapter.getBluetoothLeScanner()
不返回null,当我通过ADB执行pm list features
时,feature:android.hardware.bluetooth
和feature:android.hardware.bluetooth_le
都列出了,所以我假设getBluetoothLeAdvertiser()
不会返回null
。我的假设错了吗?
我今天一直在研究这个问题,但找不到关于这个独特案例的很多信息。
最可能的解释是您的Android设备不支持蓝牙广告。绝大多数较新的设备都支持这一点,但它并不是通用的。许多较旧的安卓设备不支持广告。
有关已知不支持广告的设备的列表,请参阅此处。