请在所有设备上使用以下代码:-
public ArrayList<Contact_Model> getContacts(){
ArrayList<Contact_Model> contact_models = new ArrayList<>();
// ContentResolver cr = context.getActivity().getContentResolver();
ContentProviderClient mCProviderClient = context.getActivity().getContentResolver().acquireContentProviderClient(ContactsContract.Contacts.CONTENT_URI);
Cursor cur = mCProviderClient.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
Contact_Model contact_model = new Contact_Model();
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String firstname;
String lastName = "";
if (name != null) {
contact_model.setContactId(id);
contact_model.setContactName(name);
if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
// get the phone number
Cursor pCur = mCProviderClient.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while (pCur.moveToNext()) {
String phone = pCur.getString(
pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
contact_model.setContactNumber(phone);
}
pCur.close();
// get email and type
Cursor emailCur = mCProviderClient.query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?",
new String[]{id}, null);
while (emailCur.moveToNext()) {
// This would allow you get several email addresses
// if the email addresses were stored in an array
String email = emailCur.getString(
emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
contact_model.setContactEmail(email);
}
emailCur.close();
Cursor photoCursor = mCProviderClient.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while (photoCursor.moveToNext()) {
String photo = photoCursor.getString(photoCursor.getColumnIndex(ContactsContract.Contacts.PHOTO_ID));
if (photo == null) {
contact_model.setContactPhoto("");
} else {
contact_model.setContactPhoto(photo);
}
}
contact_model.setContactOtherDetails("");
photoCursor.close();
// Get note.......
String noteWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
String[] noteWhereParams = new String[]{id,
ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE};
Cursor noteCur = mCProviderClient.query(ContactsContract.Data.CONTENT_URI, null, noteWhere, noteWhereParams, null);
if (noteCur.moveToFirst()) {
String note = noteCur.getString(noteCur.getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));
System.out.println("Note " + note);
contact_model.setNote(note);
}
noteCur.close();
// Get Organizations.........
String orgWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";
String[] orgWhereParams = new String[]{id,
ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE};
Cursor orgCur = mCProviderClient.query(ContactsContract.Data.CONTENT_URI,
null, orgWhere, orgWhereParams, null);
if (orgCur.moveToFirst()) {
String orgName = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA));
String title = orgCur.getString(orgCur.getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE));
if (orgName != null) {
contact_model.setOrganization(orgName);
}
if (title != null) {
contact_model.setJob(title);
}
}
orgCur.close();
}
contact_models.add(contact_model);
}
}
}
return contact_models;
}
Contact Model:-
public class Contact_Model implements Serializable {
private String contactId = "", contactName = "", contactNumber = "", contactEmail = "", contactPhoto = "", contactOtherDetails = "";
private String firstName = "", lastName = "", note = "", organization = "", job = "", dob = "";
ContactAccount contactAccount;
public Contact_Model() {
}
public Contact_Model(String contactId, String contactName, String contactNumber, String contactEmail, String contactPhoto, String contactOtherDetails, String firstName, String lastName,
String note, String organization, String job, String dob) {
this.contactId = contactId;
this.contactName = contactName;
this.contactNumber = contactNumber;
this.contactEmail = contactEmail;
this.contactPhoto = contactPhoto;
this.contactOtherDetails = contactOtherDetails;
this.firstName = firstName;
this.lastName = lastName;
this.note = note;
this.organization = organization;
this.dob = dob;
this.job = job;
}
public ContactAccount getContactAccount() {
return contactAccount;
}
public void setContactAccount(ContactAccount contactAccount) {
this.contactAccount = contactAccount;
}
public String getDob() {
return dob;
}
public void setDob(String dob) {
this.dob = dob;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public String getOrganization() {
return organization;
}
public void setOrganization(String organization) {
this.organization = organization;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getContactId() {
return contactId;
}
public void setContactId(String contactId) {
this.contactId = contactId;
}
public String getContactName() {
return contactName;
}
public void setContactName(String contactName) {
this.contactName = contactName;
}
public String getContactNumber() {
return contactNumber;
}
public void setContactNumber(String contactNumber) {
this.contactNumber = contactNumber;
}
public String getContactEmail() {
return contactEmail;
}
public void setContactEmail(String contactEmail) {
this.contactEmail = contactEmail;
}
public String getContactPhoto() {
return contactPhoto;
}
public void setContactPhoto(String contactPhoto) {
this.contactPhoto = contactPhoto;
}
public String getContactOtherDetails() {
return contactOtherDetails;
}
public void setContactOtherDetails(String contactOtherDetails) {
this.contactOtherDetails = contactOtherDetails;
}
}
ContactAccount.class
public class ContactAccount implements Serializable {
String accountName = "", accountType = "";
public ContactAccount(){
}
public ContactAccount(String accountName, String accountType) {
this.accountName = accountName;
this.accountType = accountType;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getAccountType() {
return accountType;
}
public void setAccountType(String accountType) {
this.accountType = accountType;
}
}
希望对你有所帮助..