내 앱에서는 gmail 및 Facebook.With와 같은 다른 계정이 아닌 전화로 연락처를 받아야합니다. 내 코드는 연락처가 있지만 문제는 Gmail과 같은 모든 소스에서 가져 오는 것입니다. 페이스 북 등전화 번호부 만 받으세요 android
코드
contactResolver = context.getContentResolver();
Cursor cur = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + " ASC");
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
contactsModel = new ContactsModel();
id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
contactsModel.name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
phoneCursor = contactResolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);
while (phoneCursor.moveToNext()) {
// Do something with phones
int phoneType = phoneCursor.getInt(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
String phoneNo = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
//you will get all phone numbers according to it's type as below switch case.
switch (phoneType) {
case ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE:
phone = phoneNo;
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_HOME:
phone = phoneNo;
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_WORK:
phone = phoneNo;
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE:
phone = phoneNo;
break;
case ContactsContract.CommonDataKinds.Phone.TYPE_OTHER:
phone = phoneNo;
break;
default:
phone = phoneNo;
break;
}
listPhones.add(phoneNo);
}
/*get email*/
emailCursor = contactResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{id}, null);
while (emailCursor.moveToNext()) {
//String emai = emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
int type = emailCursor.getInt(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
String s = (String) ContactsContract.CommonDataKinds.Email.getTypeLabel(context.getResources(), type, "");
listEmails.add(emailCursor.getString(emailCursor.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)));
}
contactsModel.emails = listEmails;
contactsModel.numbers = listPhones;
listContacts.add(contactsModel);
listEmails = new ArrayList<>();
listPhones = new ArrayList<>();
emailCursor.close();
phoneCursor.close();
}
}
cur.close();
return listContacts;
그래서 난 단지 전화 번호부에서 연락처를 얻을 것이다 방법에 대해 설명합니다. 쿼리 아래
감사하지만 난 Gmail 연락처를 치우는거야하지만 난 여전히 무엇입니까이 코드 hotmail ka contacts –
미안하지만 나는 hotmail에 대해 모른다. –