无法读取android中的手机通讯录

时间:2014-12-01 17:15:16

标签: 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会导致异常。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分: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();