【问题标题】:How can show device primary contact viewer to show ONE contact with phone number如何显示设备主要联系人查看器以显示一个带有电话号码的联系人
【发布时间】:2016-01-20 08:06:41
【问题描述】:

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

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 主要联系人查看器,但我不知道如何操作?

像这样:

【问题讨论】:

  • 这一切都记录在这里:developer.android.com/guide/components/intents-common.html 在“联系人/人员应用程序”一章中
  • @MarcinOrlowski 感谢您的回复。但不幸的是,我无法访问您的链接,也无法访问我所在地区的谷歌文档!
  • 令人印象深刻。我发布了相关引用的回复。

标签: android android-contacts


【解决方案1】:

所有这些都记录在官方 Android 文档Common Intents,“联系人/人员应用程序”一章中。

编辑

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

以下是链接文档的引用:

查看联系人

要显示已知联系人的详细信息,请使用 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 操作,使用 content: URI 指定联系人作为意图数据,并将任何已知联系人信息包含在由 ContactsContract.Intents.Insert 中的常量指定的附加信息中。

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

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

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

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

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。你是黑夜里的一盏灯。
猜你喜欢
  • 1970-01-01
  • 2016-01-08
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
  • 1970-01-01
  • 2017-11-26
  • 2012-02-11
  • 2013-02-15
相关资源
最近更新 更多