Some thoughts about AppOpsManager and 4.4

Android 4.3 introduced a new hidden feature: AppOps.
Android 4.4 improved this feature, but it is still hidden.

Someone talks about it as an "App Permission Manager".
We have very few information about it, but it is a lot more than a simple permission manager.

Currently there is no action to launch it.

You can see it in Manifest.xml:

A simple way could be this:
 Intent intent = new Intent("android.settings.SETTINGS");

Here you can find info about apps which use location-permissions, contact-permissions, message-permissions....
In the list, for each app you can see the last use of this permission, and if you click on an item, you can see a full detail.

Pay attention!
You can disable permissions, but this can break your app!
Don't do it!!
Currently the devs can't check if a permission was removed.

With API 19 Google introduced new feature in 4.4. with this class: AppOpsManager.

Pay attention to comments inside it:
  This API is not generally intended for third party application developers; most
  features are only available to system applicatins. 
I suggest you not use this class!
I don't know much about this class, however just to try......
    //Don't use this code! 
    AppOpsManager mAppOps = (AppOpsManager) getSystemService(Context.APP_OPS_SERVICE);

    PackageManager mPm = getPackageManager();
    PackageInfo mPackageInfo=null;
    try {
         mPackageInfo = mPm.getPackageInfo(packageName,
                    PackageManager.GET_DISABLED_COMPONENTS |
    } catch (Exception e) {//only for test!}

    int permission= mAppOps.noteOp(AppOpsManager.OPSTR_FINE_LOCATION,

You can get code from GitHub:


Popular posts from this blog

AntiPattern: freezing a UI with Broadcast Receiver

How to centralize the support libraries dependencies in gradle

NotificationListenerService and kitkat