Cod*_*ice 5 android runtime-error android-contentprovider
在一个应用程序中,我在AndroidManifest中声明了以下内容提供程序:
<provider android:name="com.example.MyProvider"
android:label="@string/provider_name"
android:authorities="com.example"
android:readPermission="com.example.permission.READ"
/>
Run Code Online (Sandbox Code Playgroud)
另一个应用程序请求使用它的权限:
<uses-permission android:name="com.example.permission.READ" />
Run Code Online (Sandbox Code Playgroud)
但是在运行此代码时:
ContentResolver resolver = this.context.getContentResolver();
Cursor results = resolver.query(BaseballCardContract.CONTENT_URI, BaseballCardContract.PROJECTION, null, null, null);
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
E/DatabaseUtils(1009):java.lang.SecurityException:Permission Denial:从pid = 996读取bbct.android.common.BaseballCardProvider uri内容://bbct.android.baseballcard/baseball_cards,uid = 10046需要com.example.permission .READ或grantUriPermission()
据我所知,我正在申请所需的许可.我在这里错过了什么?还有什么我需要看的?
在定义ContentProvider的应用程序中,您是否还定义了您需要/请求的权限(在您的其他应用程序中)?像这样(在根<manifest/>
标签内):
<permission android:name="com.example.permission.READ" />
Run Code Online (Sandbox Code Playgroud)
通常,您需要:
编辑:所以只是100%清楚,仅通过在ContentProvider中要求它来"隐式"定义权限是不够的.您必须在应用程序的清单文件中明确定义它(在<manifest/>
标记内).
归档时间: |
|
查看次数: |
4855 次 |
最近记录: |