应使用ContactsContract.CommonDataKinds.Phone.CONTENT_URI而不使用ContactsContract.Contacts.CONTENT_URI
否则在读取号码时会没有对应的列崩溃
ContentResolver resolver = getContentResolver(); Cursor cursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); if(cursor!=null){ cursor.moveToFirst(); do { String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); stringList.add(name+"\n"+number); }while (cursor.moveToNext()); } adapter.notifyDataSetChanged(); cursor.close();
本文强调在读取手机联系人时,应使用ContactsContract.CommonDataKinds.Phone.CONTENT_URI,而不是ContactsContract.Contacts.CONTENT_URI。错误的选择会导致在获取电话号码时因找不到对应列而引发应用崩溃。
1740

被折叠的 条评论
为什么被折叠?



