安卓系统:蓝牙适配器getBluetoothLeAdvertiser()为null



我正试图通过蓝牙进行设备间通信,但遇到了问题。我使用以下代码获得BluetoothManagerBluetoothAdapter

manager = (BluetoothManager)context.getSystemService(Context.BLUETOOTH_SERVICE);
adapter = manager.getAdapter();

在获得适配器后,我将尝试获得设备二的BluetoothLeAdvertiser,以便能够找到并连接到设备一。然而,我遇到了一个奇怪的案子。

adapter.isMultipleAdvertisementSupported()返回falseadapter.getBluetoothLeAdvertiser()返回null,这是预期的,但以下情况除外:

adapter.getBluetoothLeScanner()不返回null,当我通过ADB执行pm list features时,feature:android.hardware.bluetoothfeature:android.hardware.bluetooth_le都列出了,所以我假设getBluetoothLeAdvertiser()不会返回null。我的假设错了吗?

我今天一直在研究这个问题,但找不到关于这个独特案例的很多信息。

最可能的解释是您的Android设备不支持蓝牙广告。绝大多数较新的设备都支持这一点,但它并不是通用的。许多较旧的安卓设备不支持广告。

有关已知不支持广告的设备的列表,请参阅此处。

相关内容

  • 没有找到相关文章

最新更新