如何显示设备的主要联系人查看器显示与电话号码的一个联系人
我正在编写一个应用程序,我需要向用户显示一个联系人。我有电话号码,我可以查询以获取联系详情。像这样:如何显示设备的主要联系人查看器显示与电话号码的一个联系人
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));
}
但是我需要显示设备的主要联系人查看器,我不知道如何?
像这样:
这在Android官方文档的所有文档,Common Intents,章 “联系人/联系人应用”。
编辑
但遗憾的是我不能访问到你的链接,也不也是谷歌文件在我的领域!
我这里还有来自链接文档报价:
查看联系人
要为已知的接触显示详细信息,请使用ACTION_VIEW行动,并指定与内容的接触:如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权限)中所述。
注意:Extras - 一个或多个在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。
谢谢@MarcinOrlowski。你是夜晚的灯光。 – Beppe
这是所有记录在这里:https://developer.android.com/guide/components/intents-common.html在章节“联系人/人的应用程序” –
@MarcinOrlowski感谢您的回复。但不幸的是,我无法访问您的链接,也没有谷歌文件也在我的地区! – Beppe
令人印象深刻。我发布了相关报价的回复。 –