访问内容提供商

时间:2016-06-01 13:25:38

标签: android android-contentprovider

我想使用URI访问内容提供程序,该URI的格式如下。

sUriMatcher.addURI("org.abcd.providers.contentprovider", "bookmarks", 1)

那么,我可以使用URI访问它吗," content://org.abcd.providers.contentprovider/bookmarks" ?价值是什么" 1"意思?如何查询此类型的提供程序,提前致谢。

1 个答案:

答案 0 :(得分:1)

" 1"在ContentProvider内部使用。它用于将URI与数字相关联。方便在switch语句中使用。

为什么不使用字符串匹配?好吧,URI可能包含可变部分。例如" content://my.provider/bank/customer/2"。 2是客户的ID。或者"内容://my.provider/location/42/name"。这里的变量部分是42.字符串匹配在这里失控。另一方面,UriMatcher能够将示例1与addURI(" my.provider"," bank / customer /#",1)和示例2与addURI(&#)匹配34; my.provider"," location /#/ name",2)。当我们要求配置的UriMatcher匹配URI时,它返回与匹配URI相关联的数字。

但我们在这里走出轨道。这个数字与您作为消费者无关。您可以使用上下文方法查询提供程序' getContentResilver()。query(content://org.abcd.providers.contentprovider/bookmarks,/ * other args * /)'。有关更多信息,请参阅the documentation

但是如果它被导出(你无能为力),你只能与提供者交谈,或者它需要你的应用程序拥有的权限。这根本不包括任何权限。