我可以获得联系人列表及其基本信息,例如:姓名。通过使用 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/