我正在使用Android 4.2.2。
说我有一个名为" Home"的联系人。我使用基本的联系人选择器,如:
Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
...然后在onActivityResult中我得到了联系人URI:
String contactUri = data.getDataString();
让我们回复content://com.android.contacts/data/10855
。
但现在在应用程序的另一部分,我正在收看来电。当来电时,我试图找到呼叫联系人URI:
Cursor c = context.getContentResolver().query(
Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phone_nbr)),
new String[] {PhoneLookup.LOOKUP_KEY,PhoneLookup._ID},
null, null, null);
我猜测10855会在LOOKUP_KEY或_ID中。它恰好不是,所以我想我会以错误的方式去做。有人可以建议吗?
谢谢!
答案 0 :(得分:0)
查看similar answer我要说使用返回的URI并从那里找到查找键。
这样的事可能有用:
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
String key = null;
if (c != null && c.moveToFirst()) {
key = c.getString(c.getColumnIndex(ContactsContract.Data.LOOKUP_KEY));
}