当用户拒绝应用的权限管理器中的权限时,如何检测位置访问的状态。
这不是关于Android M,而是所有API级别
我尝试使用Context#checkPermission,但它总是返回true。如果用户拒绝了,我无法获得位置访问权限的正确状态。
private static boolean checkPermission(Context context, String permName, String pkgName){
PackageManager pm = context.getPackageManager();
if(PackageManager.PERMISSION_GRANTED == pm.checkPermission(permName, pkgName)){
System.out.println(pkgName + "has permission : " + permName);
return true;
}else{
//PackageManager.PERMISSION_DENIED == pm.checkPermission(permName, pkgName)
System.out.println(pkgName + "not has permission : " + permName);
return false;
}
}
答案 0 :(得分:0)
使用ContextCompat.checkSelfPermission()
对我有用:
if(ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_GRANTED){
return true;
}else{
Log.d(LOG_TAG, "Permission not granted: " + permission);
return false;
}