位置访问拒绝设置,checkSelfPermission 总是返回 Granted (0) - Android
Location Access Deny from setting, checkSelfPermission returning always Granted (0) - Android
我的应用程序使用的是目标发布版本 22。我在 manifest
文件中提到了 FINE_LOCATION
权限。
当我 运行 我的应用程序在 android 6.0.1 上时,它在我显示当前位置的地图视图中工作正常。
但是当用户从应用程序设置获得 "Deny" 权限时,我遇到了问题,然后由于权限异常,应用程序开始崩溃。
当我使用下面的代码时
if ((ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED))
ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, REQUEST_LOCATION_PERMISSION);
}
但是这段代码总是返回 PackageManager.PERMISSION_GRANTED
。
有人可以帮助解决这个问题吗?
我已经浏览过这些链接 -
已使用PermissionChecker 解决。 PermissinChecker return Granted/Deny 的状态,即使构建版本低于 23
if(Build.VERSION.SDK_INT >= 23){
int permissionStatus = PermissionChecker.checkSelfPermission(context, permission);
if(permissionStatus != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(context, new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, 101);
return false;
}
}
我的应用程序使用的是目标发布版本 22。我在 manifest
文件中提到了 FINE_LOCATION
权限。
当我 运行 我的应用程序在 android 6.0.1 上时,它在我显示当前位置的地图视图中工作正常。
但是当用户从应用程序设置获得 "Deny" 权限时,我遇到了问题,然后由于权限异常,应用程序开始崩溃。
当我使用下面的代码时
if ((ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED))
ActivityCompat.requestPermissions(activity, new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, REQUEST_LOCATION_PERMISSION);
}
但是这段代码总是返回 PackageManager.PERMISSION_GRANTED
。
有人可以帮助解决这个问题吗?
我已经浏览过这些链接 -
已使用PermissionChecker 解决。 PermissinChecker return Granted/Deny 的状态,即使构建版本低于 23
if(Build.VERSION.SDK_INT >= 23){
int permissionStatus = PermissionChecker.checkSelfPermission(context, permission);
if(permissionStatus != PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(context, new String[] { Manifest.permission.ACCESS_FINE_LOCATION }, 101);
return false;
}
}