Android ContentProvider读写权限

时间:2011-08-20 21:18:05

标签: android permissions android-contentprovider

权限似乎没有任何区别......

在清单中,我只有一个<uses-permission>permission.INTERNET),我有两个<permission>元素:

<permission android:name="myapp.permission.READ"
    android:permissionGroup="myapp.permission-group.MYAPP_DATA"
    android:label="@string/perm_read"
    android:description="@string/perm_read_summary"
    android:protectionLevel="signature" />

<permission android:name="myapp.permission.WRITE"
    android:permissionGroup="myapp.permission-group.MYAPP_DATA"
    android:label="@string/perm_write"
    android:description="@string/perm_write_summary"
    android:protectionLevel="signature" />

然后是提供者:

    <provider
        android:name=".data.DataProvider"
        android:multiprocess="true"
        android:authorities="myapp.data.DataProvider"
        android:readPermission="myapp.permission.READ"
        android:writePermission="myapp.permission.WRITE" />

现在,我可以正常访问ContentProvider,而且工作正常。

  1. 如果我没有使用<uses-permission>强制执行,为什么会有效? 在提供商所在的应用中也不应该需要它 声明

  2. 使用我自己的权限添加<uses-permission>没有任何区别。这些权限甚至没有在应用信息中列出。为什么呢?

  3. ps:是的,我在这里读过有关SO和Google网上论坛的问题(也是Hackborn回答的问题)。我跟着(你可以看到)到处都有什么描述,但是......你可以说它正在发挥作用,但关键是我希望看到它什么时候没有。

1 个答案:

答案 0 :(得分:5)

  

在声明提供者的应用程序中是否也不需要它?

AFAIK,您自己的应用程序拥有您声明的所有权限。第三方需要<uses-permission>

  

甚至没有在应用信息中列出权限。为什么呢?

见上文。

  

你可以说它正在发挥作用,但关键是我希望看到它什么时候没有。

在自己的软件包中编写另一个应用程序来测试您的权限。