在android中读取联系人的两个版本之间的冲突

时间:2011-08-08 10:56:01

标签: java android

我创建了一个从手机读取联系人的应用程序,它在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();

       }                

感谢。

1 个答案:

答案 0 :(得分:1)

使用URI“Phone.CONTENT_URI”。它正在测试2.3.3或2.2.1。