6

因此,随着 Android 4.3 的到来,可以选择性地禁用应用程序的特定权限

这显然会导致应用程序失去正确运行所需的权限的问题。

当权限被撤销时系统是否会广播消息,或者我怎么知道我的应用程序不再具有某个权限?理想情况下,我想通知用户关闭权限 A 会破坏应用程序中的 xyz。

4

1 回答 1

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".

于 2013-08-01T12:28:38.493 回答