我有两个应用程序,让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。由于某些其他功能,因此无法升级。