代码之家  ›  专栏  ›  技术社区  ›  Beppe

如何显示设备主联系人查看器以显示一个带有电话号码的联系人

  •  1
  • Beppe  · 技术社区  · 9 年前

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

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

    但我需要向设备主联系人查看器展示,我不知道如何?

    这样地:

    enter image description here

    1 回复  |  直到 9 年前
        1
  •  1
  •   Marcin Orlowski    9 年前

    这都记录在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中定义的一个或多个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 .