如何显示设备主要联系人查看器以显示与电话号码

时间:2016-01-20 08:06:42

标签: android android-contacts

我正在编写应用程序,我需要向用户显示联系人。我有电话号码,我可以查询以获取联系方式。像这样:

ContentResolver cr = context.getContentResolver();
    Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI,
            Uri.encode(phoneNumber));
    Cursor cursor = cr.query(uri,
            new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME}, null, null, null);
    if (cursor == null) {
        return null;
    }
    String contactName = phoneNumber;
    if (cursor.moveToFirst()) {
        contactName = cursor.getString(cursor
                .getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME));
    }

但是我需要显示DEVICE主要联系人查看器,我不知道怎么做?

像这样:

enter image description here

1 个答案:

答案 0 :(得分:1)

这些都记录在官方Android文档中,Common Intents,章节"联系人/人物应用程序"。

修改

  

但遗憾的是我无法访问您的链接,也无法访问我所在地区的Google文档!!

此处'来自关联文档的引用:

查看联系人

要显示已知联系人的详细信息,请使用ACTION_VIEW操作并指定与content:URI的联系人作为意图数据。

最初检索联系人URI的方法主要有两种:

  • 使用ACTION_PICK返回的联系人URI,如上一节所示(此方法不需要任何应用程序权限)。
  • 直接访问所有联系人列表,如检索联系人列表(此方法需要READ_CONTACTS权限)中所述。

示例:

public void viewContact(Uri contactUri) {
    Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

修改现有联系人

要编辑已知联系人,请使用ACTION_EDIT操作,指定具有内容的联系人:URI作为意图数据,并在ContactsContract.Intents.Insert中的常量指定的额外内容中包含任何已知的联系信息。

最初检索联系人URI的方法主要有两种:

  • 使用ACTION_PICK返回的联系人URI,如上一节所示(此方法不需要任何应用权限)。

  • 直接访问所有联系人列表,如检索联系人列表(此方法需要READ_CONTACTS权限)中所述。

注意:附加内容 - ContactsContract.Intents.Insert中定义的一个或多个附加内容,以便您可以填充联系人详细信息的字段。

public void editContact(Uri contactUri, String email) {
    Intent intent = new Intent(Intent.ACTION_EDIT);
    intent.setData(contactUri);
    intent.putExtra(Intents.Insert.EMAIL, email);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }
}

有关如何编辑联系人的详细信息,请阅读Modifying Contacts Using Intents