80,488
社区成员
发帖
与我相关
我的任务
分享
private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
String[] p = new String[] {Contacts._ID,Contacts.DISPLAY_NAME,"smart",Contacts.LOOKUP_KEY,Contacts.HAS_PHONE_NUMBER};
Cursor cur = getContentResolver().query(Contacts.CONTENT_URI, p,
null, null, null);
if (cur.moveToFirst()) {
int idColumn = cur.getColumnIndex(Contacts._ID);
int displayNameColumn = cur.getColumnIndex(Contacts.DISPLAY_NAME);
int smartColumn = cur.getColumnIndex("smart");
int lookupColumn = cur.getColumnIndex(Contacts.LOOKUP_KEY);
do {
Map<String, Object> map = new HashMap<String, Object>();
String contactId = cur.getString(idColumn);
String displayName = null;
displayName = cur.getString(displayNameColumn);
String smart = cur.getString(smartColumn);
String lookup = cur.getString(lookupColumn);
int resource;
if (lookup.startsWith(IS_GSM_CARD)) {
resource = R.drawable.ic_contact_picture_g;
} else if (lookup.startsWith(IS_CDMA_CARD)) {
resource = R.drawable.ic_contact_picture_c;
} else {
resource = R.drawable.ic_contact_picture_local;
}
map.put("contactId", contactId);
map.put("smart", smart);
map.put("contactName", displayName);
map.put("lookup", resource);
int phoneCount = cur
.getInt(cur
.getColumnIndex(Contacts.HAS_PHONE_NUMBER));
String newNumber = "";
if (phoneCount > 0) {
Cursor phones = getContentResolver()
.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = "
+ contactId
+ " and "
+ ContactsContract.CommonDataKinds.Phone.TYPE
+ "="
+ ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE,
null, null);
if (phones != null && phones.moveToNext()) {
String phoneNumber = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String[] splitNumber = phoneNumber.split("-");
for (int i = 0; i < splitNumber.length; i++) {
newNumber += splitNumber[i];
}
}
} else {
newNumber += NONE_TELEPHONENUMBER;
}
map.put("contactNumber", newNumber);
list.add(map);
} while (cur.moveToNext());
}
return list;
}