如何获取位置访问权限的状态以警告用户

时间:2017-05-14 17:24:47

标签: android

当用户拒绝应用的权限管理器中的权限时,如何检测位置访问的状态。

这不是关于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;
    }
}

1 个答案:

答案 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;
}