我可以检测到我的Android应用程序已删除特定权限吗?

时间:2013-08-01 11:05:09

标签: android android-permissions android-4.3-jelly-bean

因此随着Android 4.3的出现,选择性disable particular permissions for apps的能力也随之而来。

这可能会导致应用程序失去正常运行所需的权限。

系统是否在撤消权限时广播消息,或者我怎么能告诉我的应用不再具有某种权限?理想情况下,我想通知用户关闭权限A将破坏应用程序中的xyz。

1 个答案:

答案 0 :(得分:2)

没有广播,但您可以在启动(或恢复等)时自行检查权限。为此提供了Context#checkCallingOrSelfPermission()

如果要检查所有权限,可以执行以下操作:

public static boolean[] getPermissionsGranted(Context context, String[] permissions){
    boolean[] permissionsGranted = new boolean[permissions.length];
    for(int i=0;i<permissions.length;i++){
        int check = context.checkCallingOrSelfPermission(permissions[i]);
        permissionsGranted[i] = (check == PackageManager.PERMISSION_GRANTED);
    }
    return permissionsGranted;
}

输入字符串是权限的名称,例如"android.permission.INTERNET"