class ContactEntity { String contactName; String contactTel; public void setTelNumber(String data1) { contactTel = UZoneUtils.formatPhontNumber(data1); } public void setContactName(String data1) { contactName = UZoneUtils.StringFilter(data1); } }
List<ContactEntity> mContactEntities = null;JSONArray mArray = new JSONArray();
mContactEntities = new ArrayList<ContactEntity>(); Cursor cur = null; try { cur = getContentResolver().query( ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"); if (null != cur && cur.moveToFirst()) { int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID); int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); do { String contactId = cur.getString(idColumn); String disPlayName = cur.getString(displayNameColumn); int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if (phoneCount > 0) { Cursor phones = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (phones.moveToFirst()) { String phoneNumber; do { ContactEntity ce = new ContactEntity(); phoneNumber = phones .getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); long updatedtime = phones.getLong(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_LAST_UPDATED_TIMESTAMP)); // Log.d("GETALLCAONTACTSDEMO", disPlayName+"|"+phoneNumber + "|" + updatedtime / 1000); ce.setTelNumber(phoneNumber); ce.setContactName(disPlayName); mContactEntities.add(ce); } while (phones.moveToNext()); } if (null != phones) { phones.close(); } } } while (cur.moveToNext()); } } catch (Exception e) { e.printStackTrace(); } finally { if (null != cur) { cur.close(); } } if (null != mContactEntities && mContactEntities.size() > 0) { for (ContactEntity temp : mContactEntities) { JSONObject mObject = new JSONObject(); try { mObject.put("tel", temp.contactTel); mObject.put("name", temp.contactName); mArray.put(mObject); } catch (JSONException e) { e.printStackTrace(); } } } if (mArray.length() > 0) { handler.sendEmptyMessage(READ_CONTACT_SUCCESS); } return null;