2017-07-07 153 views
0

我面临的问题与运行时权限与Android 6及以上,同时禁用“手机”权限,多行应用程序崩溃。 崩溃不在应用程序级别发生,所以无法找到应用程序崩溃的位置。 请查阅下面的崩溃日志。Android的棉花糖权限问题与SDK 23

Logs: 
07-07 12:43:53.066 28451-28451/ V/TdmCallReceiver: App receiver must live! 
07-07 12:43:53.073 28451-28479/ D/MessagesContentProvider: Query SORT: null 
07-07 12:43:53.076 28451-28481/ E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4 
                     Process:, PID: 28451 
                     java.lang.RuntimeException: An error occurred while executing doInBackground() 
                      at android.os.AsyncTask$3.done(AsyncTask.java:309) 
                      at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354) 
                      at java.util.concurrent.FutureTask.setException(FutureTask.java:223) 
                      at java.util.concurrent.FutureTask.run(FutureTask.java:242) 
                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                      at java.lang.Thread.run(Thread.java:818) 
                     Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.CallLogProvider from ProcessRecord{9cb4e5d 28451:/u0a694} (pid=28451, uid=10694) requires android.permission.READ_CALL_LOG or android.permission.WRITE_CALL_LOG 
                      at android.os.Parcel.readException(Parcel.java:1629) 
                      at android.os.Parcel.readException(Parcel.java:1582) 
                      at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:3598) 
                      at android.app.ActivityThread.acquireProvider(ActivityThread.java:5108) 
                      at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2026) 
                      at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1481) 
                      at android.content.ContentResolver.query(ContentResolver.java:488) 
                      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:295) 
                      at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                      at java.lang.Thread.run(Thread.java:818) 
registering bus 

请让我知道是否有人有任何想法解决这个问题。 这仅在“电话”权限禁用状态下才会发生。

+0

发布您的代码以供参考 – EKN

+0

分享的AsyncTask的代码和相关 – Cochi

+0

活动/片段我targetSDKVersion是23的代码和编译的版本是25,我ahve给予所有权限第一次和安装后,我已经禁用了我的“手机”权限设置,它是在崩溃的应用程序 – Sanketh

回答

0

权限检查的onResume()方法比做工精细

+0

是的我只在onResume()方法检查,但在检查权限之前,只有它崩溃 – Sanketh

+0

另一种方式在后台检查服务权限。 –