ContentResolver权限拒绝

时间:2019-12-12 10:01:02

标签: android android-contentprovider android-permissions android-contentresolver android-handler

我有两个应用程序,让A和B。A中有ContentProvider,其清单声明如下,

<provider
            android:name=".LogProvider"
            android:authorities="com.xxx.LogProvider"
            android:grantUriPermissions="true"
            android:permission="android.permission.READ_XXX_LOGS"
            android:enabled="true"
            android:exported="true"
            android:multiprocess="true"/>

应用程序B正在接收相同的ContentResolver。而且App B也有对应的。但是,只要App A中有内容提供者条目, 应用B正在接收其onChange事件。但是,出现以下错误。

I/XTSipListener: onChange, uri = content://com.xxx.LogProvider/error_logs/1
E/XTSipListener: onChange, SecurityException: Permission Denial: opening provider com.xxx.LogProvider from ProcessRecord{bb1084b 22087:com.xxx.AppB/u0a210} (pid=22087, uid=10210) requires android.permission.READ_XXX_LOGS or android.permission.READ_XXX_LOGS

W/System.err: java.lang.SecurityException: Permission Denial: opening provider com.xxx.LogProvider from ProcessRecord{bb1084b 22087:com.xxx.AppB/u0a210} (pid=22087, uid=10210) requires android.permission.READ_XXX_LOGS or android.permission.READ_XXX_LOGS
W/System.err:     at android.os.Parcel.readException(Parcel.java:1712)
W/System.err:     at android.os.Parcel.readException(Parcel.java:1662)
W/System.err:     at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:4935)
W/System.err:     at android.app.ActivityThread.acquireProvider(ActivityThread.java:6083)
W/System.err:     at android.app.ContextImpl$ApplicationContentResolver.acquireProvider(ContextImpl.java:2468)
W/System.err:     at android.content.ContentResolver.acquireProvider(ContentResolver.java:1476)
W/System.err:     at android.content.ContentResolver.acquireContentProviderClient(ContentResolver.java:1551)
W/System.err:     at com.xxx.AppB.contentobservers.XTSipListener.onChange(XTSipListener.java:86)
W/System.err:     at android.database.ContentObserver.onChange(ContentObserver.java:145)
W/System.err:     at android.database.ContentObserver$NotificationRunnable.run(ContentObserver.java:216)
W/System.err:     at android.os.Handler.handleCallback(Handler.java:751)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:95)
W/System.err:     at android.os.Looper.loop(Looper.java:154)
W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:6816)
W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1563)
W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1451)
E/XTSipListener: onChange: cur = NULL

AppB的目标版本为22。由于某些其他功能,因此无法升级。

0 个答案:

没有答案