联系URI与_ID / LOOKUP_KEY

时间:2014-03-19 02:09:58

标签: android android-intent contacts

我正在使用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中。它恰好不是,所以我想我会以错误的方式去做。有人可以建议吗?

谢谢!

1 个答案:

答案 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));
}