是否可以(或推荐)通过Android中的URI将参数传递给内容提供商,类似于网址如何使用它们?也就是说,我可以在content:// URIs?
中使用名称/值对例如,我有一个可以根据名称进行搜索的搜索提供程序。我传递了一个像这样的URI:
内容://com.example.app/name/john
这将使任何名字中包含“约翰”的人回归,包括约翰,约翰逊,约翰逊等。
我希望有选项(但不是要求)来搜索确切的名称,而不是找到部分匹配。我在考虑做这样的事情:
含量://com.example.app/name/john确切=真
这会告诉搜索提供商只返回与“John”完全匹配的名称。但我还没有在Android中看到任何其他类似参数的例子。有没有更好的办法?我在这里缺少什么?
谢谢!
答案 0 :(得分:12)
如果要传递查询参数,可以在构造URI时使用appendQueryParameter()方法
LoaderFactory.createCursorLoader(this,
MyProvider.MY_CONTENT_URI.buildUpon().appendQueryParameter(
MyProvider.MY_PARAM_NAME,
myParamValue).build(), projection, null,
null, null);
然后使用getQueryParameter()
访问param值String paramValue = uri.getQueryParameter(MyProvider.MY_PARAM_NAME);
答案 1 :(得分:1)
不,就我所见,任何参数都会从内容提供商网址中删除(虽然我不知道为什么),我通过使用“/”和某个前缀添加参数来解决这个问题并解析出来手动,像这样:
content://com.example.app/name/john/paramexact/true