4

更新(Android 6)我的 nexus 5 后,我正在运行的应用程序无法扫描(查找)任何蓝牙设备。getBondedDevices() 让配对设备列表正常工作。

我还测试了许多蓝牙功能的示例代码和应用程​​序(我在下面放了链接)。都有同样的问题,就是找不到蓝牙设备。

但是,是的,我在 Play 商店中只找到了一个正在运行的应用程序,它能够发现/扫描蓝牙设备。

在 Android 6 (Nexus 5) 上无法运行的应用程序 我已经测试了许多应用程序,例如bluetrem、Android Developer 的示例代码等等。

工作应用 蓝牙 4.0 扫描仪 https://play.google.com/store/apps/details?id=com.bluemotionlabs.bluescan

有人知道是什么问题吗,是否需要对代码进行任何更改才能与 Android 6 兼容

4

3 回答 3

5

至少在 Android 6.0 2015 年 11 月 1 日的安全补丁中,您不仅需要ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION权限,还需要实际打开位置服务才能进行蓝牙扫描。

我在我的应用程序和 Play Store 中的许多其他 BLE 应用程序中验证了这一点,包括Bluetooth 4.0 Scanner

这意味着我们必须在开始扫描之前确保位置已打开,否则它将静默失败。

于 2015-11-09T06:04:20.500 回答
4

可行,这是一个解决方案,尝试在放置 ACCESS_FILE_LOCATION 或 ACCESS_COARSE_LOCATION 并询问运行时权限后打开 GPS

于 2016-10-13T08:11:53.217 回答
1

由于它在Android 6 的更改列表中,因此您的应用现在必须具有 ACCESS_FINE_LOCATIONACCESS_COARSE_LOCATION某些蓝牙通话的权限。请检查您是否拥有它。

于 2015-10-31T14:28:02.780 回答