android 6.0 开发 扫描不到BLE 设备的解决方案?

扫描不到BLE设备,但系统却可以扫描到。
确认代码没问题。

其实是没权限,添加
Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION
中的一个即可!

当遇到java.lang.SecurityException: Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission to get scan results时,

首先判断 相关权限有没有加进去,如果加了,还是这个错误,这是由于Android6.0 对权限这里要求更明确且复杂了。

一个简单的方法:
修改build.grade 文件中的 targetSdkVersion 改为22 ,之前为23 ,如下,就不会报错了。
defaultConfig {
applicationId "com.example.zhy.gpsshare"
minSdkVersion 21
targetSdkVersion 22
versionCode 1
versionName "1.0"
}

当然,这只是权宜之计,要想真正搞明白还需要去看Android 6.0 对权限部分做出的更改:)