在做wifi扫描和GPS、卫星信息扫描时,都需要申请android的位置权限,在Android 6.0之后,权限申请更加严格了。不仅需要在Manifest.xml中声明,还需要在代码中显式申请。这里以位置权限为例。
如果需要网络定位,即NETWORK_PROVIDER,则申请ACCESS_COARSE_LOCATION,如果是GPS定位,则申请ACCESS_FINE_LOCATION,如果两个都需要,则只需要申请只需要申请权限ACCESS_FINE_LOCATION,就可以得到两个权限了。根据日志可以看到,当用户点击同意了使用网络或卫星定位,两个就都有权限了.
参考官网的说法: https://developer.android.com/guide/topics/location/strategies#java
部分代码:
在manifest中申请权限
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
在java代码中