Can I detect that a particular permission has been removed for my android app?

谁说胖子不能爱 提交于 2019-12-03 20:15:42

问题


So with the arrival of Android 4.3 comes the ability to selectively disable particular permissions for apps.

This could obviously cause problems where an app loses a permission it needs to operate correctly.

Does the system broadcast a message when a permission is revoked, or how could I tell that my app no longer has a certain permission? Ideally I would like to inform the user that turning off permission A will break xyz in the application.


回答1:


There is no broadcast, but you can check permissions yourself on startup(or resume, etc). Context#checkCallingOrSelfPermission() is provided for this.

If you want to check all your permissions, you could do something like this:

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

Where the input Strings are the permissions' names, such as "android.permission.INTERNET".



来源:https://stackoverflow.com/questions/17992322/can-i-detect-that-a-particular-permission-has-been-removed-for-my-android-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!