升级到Android 6.0版后,只有在设备上启用了定位服务后,蓝牙低功耗(BLE)扫描才起作用。请参阅此处以供参考:Android 6.0上的Bluetooth Low Energy startScan找不到设备
基本上,您需要为应用程序和电话启用权限。这是错误吗?在没有实际启用位置服务的情况下可以进行扫描吗?我不需要所有应用程序的位置。
编辑
我没有提到我正在使用API 21 startScan()
中BluetoothLeScanner
提供的方法。我可以接受此方法所需的课程和清单中的精细位置权限。我只是不希望我的应用程序的用户必须在其设备(GPS等)上启用位置服务才能使用我的应用程序。
以前,该startScan()
方法将在手机上禁用位置服务的情况下运行并返回结果。但是,在棉花糖上,当未在电话上启用位置服务并且清单中仍包含课程/精确位置权限时,同一应用程序将“扫描”但无提示失败,并且不返回任何结果。