Reputation: 1
I'm getting the following error while running my application in Android. I don't have any background task going on.
FATAL EXCEPTION: AsyncTask #1
Process: com.inclov.inclovapp, PID: 32532
java.lang.RuntimeException: An error occured while executing doInBackground() at android.os.AsyncTask$3.done(AsyncTask.java:304) at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355) at java.util.concurrent.FutureTask.setException(FutureTask.java:222) at java.util.concurrent.FutureTask.run(FutureTask.java:242) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818)Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{2363bbc5 32532:com.inclov.inclovapp/u0a161} (pid=32532, uid=10161) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS at android.os.Parcel.readException(Parcel.java:1546) at android.os.Parcel.readException(Parcel.java:1499) at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3503) at android.app.ActivityThread.acquireProvider(ActivityThread.java:5062) at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2737) at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1446) at android.content.ContentResolver.query(ContentResolver.java:466) at android.content.CursorLoader.loadInBackground(CursorLoader.java:64) at android.content.CursorLoader.loadInBackground(CursorLoader.java:42) at android.content.AsyncTaskLoader.onLoadInBackground(AsyncTaskLoader.java:312) at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:69) at android.content.AsyncTaskLoader$LoadTask.doInBackground(AsyncTaskLoader.java:57) at android.os.AsyncTask$2.call(AsyncTask.java:292) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818)
Upvotes: 0
Views: 890
Reputation: 30052
As stated in the error , you need these permissions :
android.permission.READ_CONTACTS
or
android.permission.WRITE_CONTACTS
For lollipop and prior, you need to add this to your manifest :
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
If you are targeting Marshmallow, you need to add a request Permissions logic inside the activity using this. Follow this official Link on how to do it.
Upvotes: 0
Reputation: 768
add these to you manifest:
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
Read this for more info - https://developer.android.com/training/contacts-provider/retrieve-names.html#Permissions
Upvotes: 0