我已经为Android开发了一个小的BLE应用程序,它与我的移动音乐盒连接。在我的手机上一切正常(Android 9)。所以我买了一台平板电脑(Android9),onScanResult从来没有调用过,但当我用Android board-function进行搜索时,我看到了蓝牙设备。
ACCESS_FINE_LOCATION
BLUETOOTH
BLUETOOTH_ADMIN 并将Location设置为on。
发布于 2020-01-17 18:25:56
如果你的蓝牙是开着的,然后给运行时许可,ACCESS_FINE_LOCATION和ACCESS_CORSE_LOCATION,但你仍然面临这个问题,然后gps打开并重新开始扫描它的工作正常。
BLE所需权限,
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>并检查gps是否已启用
private fun enableLocation(): Boolean {
val service = activity?.getSystemService(Context.LOCATION_SERVICE) as LocationManager
val enabled = service.isProviderEnabled(LocationManager.GPS_PROVIDER)
return enabled
}如果返回false,则
val intent = Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS)
startActivity(intent)对于程序启用您的gps,如果是真的,那么扫描您的设备。
发布于 2020-01-17 18:04:31
可以在清单中声明ACCESS_FINE_LOCATION,但默认情况下不会将其视为授予。您是否请求在运行时授予此权限?如果没有,请在运行时请求,或者只需转到应用程序设置中的权限部分并手动授权。
https://stackoverflow.com/questions/59784541
复制相似问题