我创建了一个从手机读取联系人的应用程序,它在 3.1 平台版本上运行良好,但当我在 2.3.3 平台上运行它时,它会抛出 NullPointerException。任何人都可以告诉我此错误的原因。
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,null,null, null, null);
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phones = cr.query(Phone.CONTENT_URI, null,
Phone.CONTACT_ID + " = " + id, null, null);
while (phones.moveToNext()) {
String number = phones.getString(phones.getColumnIndex(Phone.NUMBER));
int type = phones.getInt(phones.getColumnIndex(Phone.TYPE));
System.out.println("Numeber= "+number);
switch (type) {
case Phone.TYPE_HOME:
home=number;
break;
case Phone.TYPE_MOBILE:
mobile=number;
break;
case Phone.TYPE_WORK:
work=number;
break;
case Phone.TYPE_OTHER:
other=number;
break;
}
}
phones.close();
}
谢谢。
最佳答案
使用 URI“Phone.CONTENT_URI”。正在针对 2.3.3 或 2.2.1 进行测试。
关于java - android中读取联系人的两个版本之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6981096/