内容提供商uri如何运作?

时间:2013-05-28 05:22:10

标签: android uri android-contentprovider

我一直在研究ContentProviders一段时间了,而且我仍然难以掌握Uri的确切运作方式。

内容:// APP_NAME /的路径 / ID

指定路径时,如何访问与该路径对应的表? 看起来您需要使用该路径标记表。是这样吗?

3 个答案:

答案 0 :(得分:1)

你对谷歌文档这一点不太清楚:

首先:您必须为自定义提供程序定义权限: http://developer.android.com/guide/topics/providers/content-provider-creating.html#ContentURI

<provider
     android:name=".ProviderDemo"
     android:authorities="com.foo.android.providerdemo" />

第二:查询提供者时使用此权限: http://developer.android.com/guide/topics/providers/content-provider-creating.html#ContentURI

 //query all items
 getContentResolver().query("content://com.foo.android.providerdemo/",...)

 //query a single item
 getContentResolver().query("content://com.foo.android.providerdemo/idOfItem>",...)

 //query a view
 getContentResolver().query("content://com.foo.android.providerdemo/<idOfView>/",...)

答案 1 :(得分:0)

为了帮助您选择针对传入内容URI采取的操作,提供者API包括便捷类UriMatcher,其映射内容URI&#34;模式&#34;到整数值。您可以在switch语句中使用整数值,该语句为内容URI或与特定模式匹配的URI选择所需的操作。

答案 2 :(得分:0)

我的困惑来自缺乏SQLite知识。我不知道数据库拥有许多表而不仅仅是1个表。现在我意识到Uri的权限必须带你到数据库,然后路径将带你到正确的表。