我正在问我之前提出的问题的后续问题 -> http://stackoverflow.com/questions/33607410/background-monitoring-of-eddystone-beacon-using-altbeacon-library-on-android-pla/33613116?noredirect=1#comment55139316_33613116 .
我能够在前台和后台成功检测到信标,直到我发现当我尝试在运行 android 6.0 的 nexus 5 设备上运行时,相同的代码无法检测到信标。 谁能解释为什么会这样?谢谢。
最佳答案
Android 6.0 强加了两个新要求,以便应用程序检测 BLE 信标:
必须在设置中打开定位服务。设置 -> 位置 -> 打开。具体模式可以是“高精度”或“设备节能”。这是一项新要求,似乎正在从谷歌推出到所有固件版本。如果不开启此功能,BLE 扫描将无法发现任何设备。
用户必须向应用授予访问 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION 的运行时权限。您必须对您的应用程序进行编码,以向用户呈现这些权限请求之一。如果未授予,应用程序将无法检测到 BLE 信标。
此过程的详细说明在我的博客文章中:Is Your Beacon App Ready For Android 6.0?
关于android - 使用 nexus 5 设备启用在 android 6.0 上监控信标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33690470/