2014-12-01 44 views
0

我使用此代碼讀取ohone聯繫人。無法在android中讀取手機通訊錄

 Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 
     if(cursor.moveToFirst()&&cursor.getCount()>0&&cursor!=null){ 

       // String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone._ID)); 
       String name  = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
       String phone  = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

}  

但是,這些"ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME" ,"ContactsContract.CommonDataKinds.Phone.NUMBER"返回-1導致異常。

我該如何索取這個徽章?

+0

使用DatabaseUtils.dumpCursor看到所有可以使用的列,電話號碼不在其中 – pskink 2014-12-01 17:33:16

回答

0

試試這個代碼

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null); 
while (phones.moveToNext()) 
{ 
    String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
    String phone = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

} 
phones.close();