查询的Android取得联系ACCOUNT_TYPE和ACCOUNT_NAME [英] Query Android contact to get ACCOUNT_TYPE and ACCOUNT_NAME
问题描述
我能获得联系人名单和他们喜欢的基本信息:姓名。电话,电子邮件,IMS,笔记,组织用于备份使用 ContactsContract.Contacts.CONTENT_URI
连络人及其他特定的URI不同的信息类型的列表。
我需要,以全面恢复所有信息两个字段:
ContactsContract.RawContacts.ACCOUNT_TYPE
ContactsContract.RawContacts.ACCOUNT_NAME
块引用>任何人都可以指导我如何获得这一信息,从ContactsContract.Contacts.CONTENT_URI知道联系人标识?
感谢您
解决方案公共ContactAccount getContactAccount(长ID,ContentResolver的ContentResolver的){ ContactAccount账户= NULL; 光标光标= NULL;
尝试{ 光标= contentResolver.query(ContactsContract.RawContacts.CONTENT_URI,
新的String [] {ContactsContract.RawContacts.ACCOUNT_NAME,ContactsContract.RawContacts.ACCOUNT_TYPE},
ContactsContract.RawContacts.CONTACT_ID +=?,
新的String [] {将String.valueOf(ID)},
空值); 如果(光标=空&放大器;!&放大器; cursor.getCount()大于0)
{
cursor.moveToFirst();
账户=新ContactAccount();
account.setAccountName(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_NAME)));
account.setAccountType(cursor.getString(cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE)));
cursor.close();
}
}赶上(例外五){
Utils.log(this.getClass()的getName(),e.getMessage());
} {最后
cursor.close();
} 返回(账户);
}I am able to obtain a list of contacts and their basic information like: name. phones, emails, ims, notes, organizations for backup purposes by using
ContactsContract.Contacts.CONTENT_URI
for a list of Contacts and other specific URIs for different information type.I need, in order to fully restore all the information two more fields:
ContactsContract.RawContacts.ACCOUNT_TYPE
ContactsContract.RawContacts.ACCOUNT_NAME
Can anyone guide me how to obtain this info, knowing the Contact Id from ContactsContract.Contacts.CONTENT_URI ?
Thank you
解决方案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取得联系ACCOUNT_TYPE和ACCOUNT_NAME的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!