【发布时间】:2015-04-07 13:15:21
【问题描述】:
我正在尝试使用 SearchView 通过电话号码查询联系人提供者。
我正在使用游标加载器来查询内容提供者
case CONTACT_SEARCH_DEVICE_PHONE:
String phoneNumber = args.getString(Constants.EXTRA_QUERY_PARAM);
Uri uri =
ContactsContract.PhoneLookup.CONTENT_FILTER_URI
.buildUpon().appendPath(phoneNumber).build();
return new CursorLoader(this, uri, null,
null, null, null);
我的问题是 PhoneLookup 总是返回空光标,虽然如果我在官方的 android 联系人应用程序中写入相同的电话号码,我会得到预期的结果。
如果我使用 ContactsContract.Contacts.CONTENT_FILTER_URI 而不是 PhoneLookup URI,我会得到结果,但这是完全错误的,与预期结果不符。
任何帮助将不胜感激。
编辑:我正在 Lollipop 中尝试此代码
【问题讨论】:
-
先用你的 uri 试试 ContentResolver.query 看看它返回了什么,确保你的 uri 是正确的
-
不幸尝试了 Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode("0"));然后 getContentResolver().query(uri, null, null, null, null) 它没有工作,仍然返回一个空游标。
-
试过这个URI content://com.android.contacts/phone_lookup/0114,还是没有结果。
-
我回家后一小时内会给你正确的 uri
-
好的,非常感谢您的帮助。
标签: android android-contentprovider contacts