0

我有一个应用程序ContentProvider

    <provider android:name="ExampleProvider" 
              android:readPermission="example.contentprovider.READ"
              android:label="Example Content Provider"
              android:authorities="example.contentprovider.provider"
    />

另一个应用程序请求访问提供程序的权限:

<uses-permission android:name="example.contentprovider.READ" />

但是当我运行第二个应用程序时,我得到了

E/AndroidRuntime(  818): java.lang.RuntimeException: Unable to start activity
ComponentInfo{example.contentresolver/example.contentresolver.ContentResolverActivity}:
java.lang.SecurityException: Permission Denial: reading example.contentprovider.ExampleProvider
uri content://example.contentprovider.provider/words from pid=818, uid=10045
requires example.contentprovider.READ, or grantUriPermission()

为什么我会收到此错误?

在此处查看完整的 SSCCE。

4

2 回答 2

2

您应该首先在创建 ContentProvider 的应用程序中定义权限,然后使用它。

<permission android:name="example.contentprovider.READ"
    android:permissionGroup="..."
    android:label="@string/perm_read"
    android:description="@string/perm_read_summary"
    android:protectionLevel="dangerous" />
于 2013-02-15T01:16:31.903 回答
1

确保 android:exported = true;

于 2013-06-04T10:23:46.400 回答