【发布时间】:2019-11-20 15:31:28
【问题描述】:
我有一个运行在移动设备上的 Android 6 - 级别 23 应用程序,它同时发布和扫描 BLE 无连接数据包。
问题:
我发现当我调用 stopAdvertising() 时,连续运行的 BLE 扫描操作会暂停或停止工作 1-4 秒,然后再次恢复。我知道这一点是因为我可以很容易地看到每 0.10 秒连续收到的广告数据包在 1-4 秒内没有收到。这意味着当广告操作以编程方式停止时,扫描操作将暂停或停止。
我如何才能定期启动和停止 BLE 广告不会对 BLE 扫描操作造成不利影响?
我尝试使用不同的 Android 版本 API 开发我的应用程序,但遇到了同样烦人的扫描停止问题: 安卓 6 - 23 级 Android 8 26 级
仅供参考,这里有一些Android 6代码的sn-ps:
// create advertiser and save in list, so advertising instance can be stopped in future.
mBluetoothAdvertiser = mBluetoothAdapter.getBluetoothLeAdvertiser();
// start advertising!
mBluetoothAdvertiser.startAdvertising( settings, data, mBluetoothAdvertiseCallback );
// do some work...
// TESTED BAD - the call below causes the BLE scan operation to halt for 1-4 seconds.
mBluetoothAdvertiser.stopAdvertising(mBluetoothAdvertiseCallback);
【问题讨论】:
标签: android bluetooth bluetooth-lowenergy scanning