在获取本地通讯录信息的时候,由于很多字段的第二键值相同,所以在获取公司职位等信息的时候,不可与前面的姓名号码等同时获取,而是先存储id,姓名等信息,然后通过数据库筛选出只包含公司职位的字段值,然后再存储到本地。流程如下:
(1)首先获取id姓名等信息
Uri uri =ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
cursor = context.getContentResolver().query(uri,
new String[] {"display_name", "sort_key", "contact_id",
"data1" }, null, null, "sort_key");
if(cursor.moveToFirst()) {
do {
LinkManModel contact = newLinkManModel();
String contact_phone = cursor.getString(cursor
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
……
}
while(cursor.moveToNext());
}
(2)获取公司信息
CursororgCursor = context.getContentResolver().query(ContactsContract.Data.CONTENT_URI, new String[]{ContactsContract.CommonDataKinds.Organization.COMPANY,ContactsContract.CommonDataKin ds.Organization.TITLE, "contact_id"},
ContactsContract.CommonDataKinds.Nickname.CONTACT_ID+"="+"contact_id"+"AND "+
ContactsContract.Data.MIMETYPE+"='"+ContactsContract.CommonDataKinds.Organization.CONTENT_IT EM_TYPE+"'", null, null);
if(orgCursor.moveToFirst()){
do{
String company =orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.COMPANY));
String position =orgCursor.getString(orgCursor.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE))
}while(orgCursor.moveToNext());
}
orgCursor.close();