【问题标题】:Retrieve contact details from Contact Application从联系人应用程序中检索联系人详细信息
【发布时间】:2015-01-22 14:10:28
【问题描述】:

我正在实现一个电话簿应用程序,我希望用户能够从 Android 中已安装的联系人应用程序中将联系人导入我的应用程序。问题是我无法检索从列表中选择的联系人的电子邮件值。

我使用以下代码打开联系人应用程序

Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts"));
pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers
startActivityForResult(pickContactIntent, PICK_CONTACT_REQUEST);

在 onActivityResult 中,我使用以下代码来获取我从联系人列表中选择的联系人的数据:

Uri contactUri = data.getData();

        String[] projection = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Email.ADDRESS};

        Cursor cursor = getContentResolver()
                .query(contactUri, projection, null, null, null);
        cursor.moveToFirst();

        int column = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
        String number = cursor.getString(column);

        int column1 = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS);
        String email= cursor.getString(column1);

        int column2 = cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME);
                String fullName = cursor.getString(column2);

但“email”变量包含与联系人电话号码相同的值。有什么问题?

此外,光标的Phone.DISPLAY_NAME 列包含联系人的全名。(firstName、middleName 和lastName)。有没有办法单独获取这些字段?现在我使用 split(" ") 函数将它们分开。

提前谢谢你!

【问题讨论】:

    标签: android contacts


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多