升级到 Android 版本6.0后,低耗电蓝牙扫描只有在设备上启用位置服务的情况下才能工作。请参阅此处: 安卓6.0低耗电蓝牙的 startScan 没有找到任何设备
基本上,您需要为应用程序和手机启用许可。这是窃听器吗?是否有可能在没有实际启用定位服务的情况下进行扫描?我不想为我所有的应用程序定位。
剪辑
我没有提到我正在使用 API 21中提供的 BluetoothLeScanner
中的 startScan()
方法。我对此方法需要的清单中的过程和精细位置权限没有意见。我只是不希望我的应用程序的用户必须在他们的设备(GPS 等)上启用定位服务才能使用我的应用程序。
Previously, the startScan()
method would run and return results with the Location services disabled on the phone. On Marshmallow, however, the same application would "scan" but silently failed and returned no results when location services were not enabled on the phone and course/fine location permissions were still in the manifest.