我正在CN1中构建一个与BLE设备(BlueGiga BLE模块)通信的应用程序。在Android5.0中,CN1应用程序可以正常工作。在Android 6中,同一个应用程序找不到任何BLE设备。不过,我可以手动连接到特定的BLE设备(设备地址预置)。所以Android 6的扫描不起作用。基于这,我发现我需要打开GPS位置,并在源中添加:
LocationManager locationManager = LocationManager.getLocationManager();
这是CN1中的一个bug,还是安卓中的一个问题?Android6中的默认扫描仪(在设置->蓝牙下)和应用程序BlueGiga不需要打开GPS位置(BlueGiga是用Android编写的)。我还找到了布尔扫描仪应用程序,它确实需要改变GPS的位置。它是用CN1写的吗?
为什么要打开GPS定位才能在Android 6的设备上进行BLE扫描呢?
发布于 2017-05-04 04:47:13
Android中的位置管理器不一定要映射到GPS,而是映射到“混合位置”,这意味着它可以从各种来源获取位置,并将它们组合成一个位置。
我对这个设备还不太熟悉,但是如果它提供了位置,那么“请求位置权限”是有意义的,这就是我们在这里要做的。正如James在评论中提到的,这与设备被实现为BLE这一事实没有任何关系,因为这是一个外部cn1lib,我们只是调用Android来抽象这一点。
https://stackoverflow.com/questions/43762565
复制相似问题