定位时,使用了高德地图,需要申请运行时权限 ACCESS_FINE_LOCATION
一开始没有申请WRITE_EXTERNAL_STORAGE 和 READ_EXTERNAL_STORAGE
测试手机里除了华为P20,其他都可以定位成功。
加上存储权限读写后,华为P20可以了。
权限判断
@TargetApi(23)
public static boolean hasLocationPermisson(Context context) {
boolean b1 = PermissionsManager.getInstance().hasPermission(context, android.Manifest.permission.ACCESS_FINE_LOCATION);
boolean b2 = PermissionsManager.getInstance().hasPermission(context, android.Manifest.permission.WRITE_EXTERNAL_STORAGE);
boolean b3 = PermissionsManager.getInstance().hasPermission(context, android.Manifest.permission.READ_EXTERNAL_STORAGE);
return b1 && b2 && b3;
}
请求
@TargetApi(23)
public static void requestLocationPermisson(Activity context) {
ActivityCompat.requestPermissions(context,
new String[]{
android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE, android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_COARSE_LOCATION}, 100);
}