2012-08-29 5 views
-1

가능한 중복 :
How to read contacts on Android 2.0show 안드로이드에 phonenumber가있는 모든 연락처 목록?

은 가능한 전화 번호부에 내 모든 ContactsPhoneNumber와의 List를 만드는 것입니다,하지만 조건은 PhoneNumber이없는 경우 다음이 표시입니다 해당 레코드의 이름 만. 이 모든 것을 내 안드로이드 응용 프로그램에 넣고 싶습니다. 나는 이걸 고집했습니다.

+4

프로필의 빠른보기 이미 비슷한 질문을하고 가지고/답을 받아 것을 알 수 @lakhani // stackoverflow.com/questions/11643229/android-application-with-phone-book-synchronization –

+0

[This (http://vikasdp.wordpress.com/2011/02/06/custom-android-listview-to-read- phone-contacts /)가 도움이 될 것입니다. –

답변

0

이렇게하면 연락처 번호가없는 모든 연락처 이름을 찾을 수 있습니다.

while (cur.moveToNext()) { 
       String id = cur.getString(cur 
         .getColumnIndex(ContactsContract.Contacts._ID)); 
       String name = cur 
         .getString(cur 
           .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
} 

감사합니다. HTTP :

0

읽기 모든 연락처

public void readContacts() { 
ContentResolver cr = getContentResolver(); 
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, 
null, null, null); 

if (cur.getCount() > 0) { 
while (cur.moveToNext()) { 
String id = cur.getString(cur 
.getColumnIndex(ContactsContract.Contacts._ID)); 
String name = cur 
.getString(cur 
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
if (Integer 
.parseInt(cur.getString(cur 
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) { 
System.out.println("name : " + name + ", ID : " + id); 

// get the phone number 
Cursor pCur = cr.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)); 
System.out.println("phone" + phone); 
} 
pCur.close(); 

// get email and type 

Cursor emailCur = cr.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)); 
String emailType = emailCur 
.getString(emailCur 
.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE)); 

System.out.println("Email " + email + " Email Type : " 
+ emailType); 
} 
emailCur.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 = cr.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); 
} 
noteCur.close(); 

// Get Postal Address.... 

String addrWhere = ContactsContract.Data.CONTACT_ID 
+ " = ? AND " + ContactsContract.Data.MIMETYPE 
+ " = ?"; 
String[] addrWhereParams = new String[] { 
id, 
ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE }; 
// Cursor addrCur = 
// cr.query(ContactsContract.Data.CONTENT_URI, 
// null, null, null, null); 
Cursor addrCur = cr.query(
ContactsContract.Data.CONTENT_URI, null, addrWhere, 
addrWhereParams, null); 

while (addrCur.moveToNext()) { 
String poBox = addrCur 
.getString(addrCur 
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX)); 
String street = addrCur 
.getString(addrCur 
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)); 
String city = addrCur 
.getString(addrCur 
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)); 
String state = addrCur 
.getString(addrCur 
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)); 
String postalCode = addrCur 
.getString(addrCur 
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)); 
String country = addrCur 
.getString(addrCur 
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY)); 
String type = addrCur 
.getString(addrCur 
.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE)); 

// Do something with these.... 

} 
addrCur.close(); 

// Get Instant Messenger......... 
String imWhere = ContactsContract.Data.CONTACT_ID 
+ " = ? AND " + ContactsContract.Data.MIMETYPE 
+ " = ?"; 
String[] imWhereParams = new String[] { 
id, 
ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE }; 
Cursor imCur = cr.query(ContactsContract.Data.CONTENT_URI, 
null, imWhere, imWhereParams, null); 
if (imCur.moveToFirst()) { 
String imName = imCur 
.getString(imCur 
.getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA)); 
String imType; 
imType = imCur 
.getString(imCur 
.getColumnIndex(ContactsContract.CommonDataKinds.Im.TYPE)); 
} 
imCur.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 = cr.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)); 
} 
orgCur.close(); 
} 
} 
} 
}