对内容提供商contenturi和内容提供商权限标记感到困惑

时间:2013-05-19 23:38:43

标签: android android-contentprovider

来自google以下示例

As an example of designing and coding content URI handling, consider a provider with the authority com.example.app.provider that recognizes the following content URIs pointing to tables:

content://com.example.app.provider/table1: A table called table1.
content://com.example.app.provider/table2/dataset1: A table called dataset1.
content://com.example.app.provider/table2/dataset2: A table called dataset2.
content://com.example.app.provider/table3: A table called table3.

我在这里很困惑。此示例是否表示Table1Contentprovider,Table2ContentProvider,Table3ContentProvider指向相同的权限URL?根据我的阅读,每个提供商都应该有唯一的权限网址。

或者是否意味着,这里只有一个提供商能够运行所有3个表?如果是这种情况,在提供者的查询方法中,我们运行sql查询来获取与所有三个表相关的数据吗?

1 个答案:

答案 0 :(得分:1)

  

来自下面的谷歌示例

实际上,它来自this page,而不是您链接的那个。

  

此示例是否表示Table1Contentprovider,Table2ContentProvider,Table3ContentProvider指向相同的权限网址?

只有一个提供商,而不是三个(“考虑 提供商”)。

  

根据我的阅读,每个提供商都应该有唯一的权限网址。

ContentProvider可以通过android:authorities属性中的逗号分隔列表支持多个权限,但大多数情况下它们只支持一个。

  

或者是否意味着,这里只有一个提供商能够运行所有3个表?

正确。

  

如果是这种情况,在提供者的查询方法中,我们运行sql查询来获取与所有三个表相关的数据吗?

query()之类的方法中,检查您提供的Uri并执行特定于所提供路径的操作。在上述示例中,query()会为路径table1table2/dataset1table2/dataset2table3执行不同的操作。