2014-07-15 1 views
3

나는 whatsapp에있는 연락처 전화 번호를 검색하고 싶습니다. 연락처의 이름을 읽을 수는 있지만 전화 번호를 알 수는 없습니다. 다음은 내 코드 내 사용자 계정 동기화를 위해 작동하는 코드를 다음RawContact 안드로이드에서 전화 번호 읽기

void readwhatsapp() 
{ 



StringBuffer output = new StringBuffer(); 
ContentResolver cr1 = getContentResolver(); 
Cursor c = cr1.query(
     RawContacts.CONTENT_URI, 
     new String[] { RawContacts.CONTACT_ID, RawContacts.DISPLAY_NAME_PRIMARY,RawContacts.PHONETIC_NAME }, 
     RawContacts.ACCOUNT_TYPE + "= ?", 
     new String[] { "com.whatsapp" }, 
     null); 


int contactNameColumn = c.getColumnIndex(RawContacts.DISPLAY_NAME_PRIMARY); 
int contactIDColumn = c.getColumnIndex(RawContacts.CONTACT_ID); 
while (c.moveToNext()) 
{ 
    // You can also read RawContacts.CONTACT_ID to read the 
    // ContactsContract.Contacts table or any of the other related ones. 
output.append(c.getString(contactNameColumn)); 
output.append(" "); 
//getContactAccount(c.getString(contactIDColumn),cr1); 
     } 

outputText.setText(output); 

} 

답변

0

사용하는 것입니다. 내 계정 이름을 whatsapp로 변경합니다. 나는 그것이 효과가 있기를 바랍니다.

String[] projection = new String[] { 
    RawContacts._ID, RawContacts.DISPLAY_NAME_PRIMARY, ContactsContract.CommonDataKinds.Phone.CONTACT_ID,  ContactsContract.CommonDataKinds.Phone.NUMBER}; 
    Cursor people = mContentResolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, RawContacts.ACCOUNT_TYPE + "= ?", 
     new String[] { "com.whatsapp" }, null); 


    int indexName = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME); 
    int indexNumber = people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER); 
    int indexUid=people.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID); 

if(people != null && people.moveToFirst()){ 

     String name = people.getString(indexName); 
     String number2 = people.getString(indexNumber); 
     String uid=people.getString(indexUid); 
     Log.d("name=",name); 
     Log.d("number=",number2); 
     Log.d("unique id=",uid); 

    } while (people.moveToNext()); 


    people.close();