【问题标题】:Contact URI vs. _ID/LOOKUP_KEY联系人 URI 与 _ID/LOOKUP_KEY
【发布时间】:2014-03-19 02:09:58
【问题描述】:

我正在使用 Android 4.2.2。

假设我有一个名为“家”的联系人。我使用基本的联系人选择器,例如:

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 中。碰巧两者都不是,所以我想我走错了路。有人可以建议吗?

谢谢!

【问题讨论】:

    标签: android android-intent contacts


    【解决方案1】:

    查看 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));
    } 
    

    【讨论】:

    • 嗯,我遇到了一个问题,因为上面的代码似乎不允许获取联系人。应用有权读取联系人
    猜你喜欢
    • 2016-09-19
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多