尝试在Android Things上运行BLE Indoor Positioning演示应用时(使用NXP i.MX7D Developer Kit),我得到merge
。
Observable
该应用使用RxAndroidBle来处理Android的蓝牙堆栈。它还在清单中声明了这些权限:
Bluetooth scanning error: Location Services disabled (code 4)
据我所知,Android Things应该在安装时或重启后自动授予这些权限。
我不知道如何手动或以编程方式启用位置服务。
答案 0 :(得分:4)
问题不在于权限。 RxAndroidBle库对位置服务做出一些假设,这些假设不一定适合Android Things(因为这些设置实际上并未由用户控制)。库检查失败的原因是NETWORK_PROVIDER
未启用,GPS_PROVIDER
仅在您注册了GPS驱动程序时启用。但是,您实际上并不需要其中任何一个进行BLE扫描。
幸运的是,看起来RxAndroidBle的作者最近更改了代码以验证是否启用了位置模式设置。此检查将传递Android Things,因此在您的情况下,您可能只需要将库依赖项更新为1.5:
dependencies {
...
implementation "com.polidea.rxandroidble:rxandroidble:1.5.0"
}