Q:

About Android, how to prevent other apps reading my contacts

I try to write an Android app to prevent other apps reading my contacts, even these apps get the android.permission.READ_CONTACTS permission
I google a lot, but get nothing. Could anyone give me some idea about this app...
Thanks!

A:

You can block the apps which has android.permission.READ_CONTACTS permission.You can get the list of apps which has android.permission.READ_CONTACTS permission through package manager api.
If you dont want to disable those app,you can revoke those permission using-http://androidxref.com/4.4.4_r1/xref/frameworks/base/core/java/android/app/AppOpsManager.java API through reflection.
Following is the method in ApoOpsManager.java which can be used for blocking a permission

/** @hide */    public void setMode(int code, int uid, String
  packageName, int mode) {
try {
       mService.setMode(code, uid, packageName, mode);

 } 
 catch (RemoteException e)
   {

 }   

}

To learn how to use reflection for calling internal/hidden api use:
http://jhshi.me/2014/04/02/get-package-usage-statistics-in-android/.similar
This approach may not work always but ya this is the only workaround which I can think of since there are no direct apis to do it.

