我正在编写应用程序,我需要向用户显示联系人。我有电话号码,我可以查询以获取联系方式。像这样:
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主要联系人查看器,我不知道怎么做?
像这样:
答案 0 :(得分:1)
这些都记录在官方Android文档中,Common Intents,章节"联系人/人物应用程序"。
修改强>
但遗憾的是我无法访问您的链接,也无法访问我所在地区的Google文档!!
此处'来自关联文档的引用:
查看联系人
要显示已知联系人的详细信息,请使用ACTION_VIEW操作并指定与content:URI的联系人作为意图数据。
最初检索联系人URI的方法主要有两种:
示例:
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。