Android 10 BLE 连接问题
Posted
技术标签:
【中文标题】Android 10 BLE 连接问题【英文标题】:Android 10 BLE connection issue 【发布时间】:2020-02-06 12:24:54 【问题描述】:我正在开发一个使用 BluetoothGatt
连接到 BLE 设备的应用程序。
我能够成功扫描和连接三星、Pixel 等所有设备中的 BLE 设备。我按照android official BLE connection 指南进行扫描和连接。
但是在将我的Pixel 2
更新为Android 10
后,我无法将我的 BLE 设备连接到 Pixel 2。我还看到Google issue tracker 中报告了同样的问题。
为了解决这个问题,我尝试清除蓝牙应用缓存和网络重置,但它适用于某些设备但不是全部。
是否需要采取任何措施来解决此问题,或者是否有适当的方法以编程方式清除蓝牙应用缓存和网络重置。
或者任何其他方式来管理 Android 中的 BLE 连接?
【问题讨论】:
是扫描还是连接不行?任何错误/状态代码? Logcat 消息? 连接不工作。我不会因为这发生在客户的设备上而获取 logcat。 我也有同样的问题,但只有在同一家公司的两台设备配对时才会出现,我无法连接到其中任何一台。取消配对后第二个连接正常。 你在使用绑定吗?设备是公开广播还是私下广播? 我也有同样的问题。我正在使用 BleScanner,但它没有检测到广告。如果我使用 28 构建应用程序,它甚至可以在 Android 10 上运行,但如果我使用 29 构建它则不起作用。完全相同的代码。 【参考方案1】:在 Android 10 (API 29) 上,权限发生了变化,如果它是您的编译目标,现在需要 ACCESS_FINE_LOCATION 进行 BLE 扫描。
但是,如果您已针对 API 28 进行编译,并且具有 ACCESS_COARSE_LOCATION,它应该可以继续在 Android 10 上运行。
来源: https://developer.android.com/about/versions/10/privacy/changes#location-telephony-bluetooth-wifi
请参阅以下内容,因为此问题可能重复: Android 10 not working with BLE Bluetooth scanning
【讨论】:
如果没有 ACCESS_FINE_LOCATION 我们不能进行 BLE 扫描吗? @IgorGanapolsky,是的,我们不能。查看文档了解更多信息:developer.android.com/guide/topics/connectivity/…以上是关于Android 10 BLE 连接问题的主要内容,如果未能解决你的问题,请参考以下文章
Android 6.0 Marshmallow BLE 连接问题