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.
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"
.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.