android - 查询Android联系人获取ACCOUNT_TYPE和ACCOUNT_NAME

标签 android android-contacts contactscontract rawcontacts

我可以获得联系人列表及其基本信息,例如:姓名。通过使用 ContactsContract.Contacts.CONTENT_URI 获取联系人列表和不同信息类型的其他特定 URI,用于备份目的的电话、电子邮件、即时消息、笔记、组织。

为了完全恢复所有信息,我需要另外两个字段:

ContactsContract.RawContacts.ACCOUNT_TYPE

ContactsContract.RawContacts.ACCOUNT_NAME

知道 ContactsContract.Contacts.CONTENT_URI 中的 Contact Id,谁能指导我如何获取此信息?

谢谢

最佳答案

public ContactAccount getContactAccount(Long id,ContentResolver contentResolver) {

        ContactAccount account = null;

        Cursor cursor = null;
        try {

             cursor = contentResolver.query(ContactsContract.RawContacts.CONTENT_URI,
                     new String[]{ContactsContract.RawContacts.ACCOUNT_NAME, ContactsContract.RawContacts.ACCOUNT_TYPE},
                     ContactsContract.RawContacts.CONTACT_ID +"=?",
                     new String[]{String.valueOf(id)},
                     null);

            if (cursor != null && cursor.getCount() >0)
            {
                cursor.moveToFirst();
                account = new ContactAccount();
                account.setAccountName(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_NAME)));
                account.setAccountType(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE)));
                cursor.close();
            }
        } catch (Exception e) {
            Utils.log(this.getClass().getName(), e.getMessage()); 
        } finally{
          cursor.close();
        }

        return(account);
    }

关于android - 查询Android联系人获取ACCOUNT_TYPE和ACCOUNT_NAME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7078463/

相关文章:

Android gps以编程方式打开和关闭

具有瘦背景的Android搜索栏

android - 如何从联系人数据库中读取所有联系人并将其存储到列表中?

android - 如何只显示手机联系人(排除SIM卡联系人)

android - 插入具有特定 contactid 的 RawContact

android - 在 Unity for Android 中确定 Admob SmartBanner 的实际高度

android - 如何从主要 Activity 中的 fragment 触发事件?

java - Android获取ArrayList中的所有联系人电话号码

android - 如何在android中以编程方式将铃声添加到 native 应用程序联系人

android - 如何在 Android 中检索用户的最佳名字?