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

标签 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();

       }                

谢谢。

最佳答案

使用 URI“Phone.CONTENT_URI”。正在针对 2.3.3 或 2.2.1 进行测试。

关于java - android中读取联系人的两个版本之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6981096/

相关文章:

java - Java 重绘中的组合框

java - 接口(interface)上的 NoClassDefFoundError,而不是类

android - 如何在 Oreo 中打开内部存储中的 PDF 文件?

android - 如何在android的listview中只显示两行数据

java - YouTube API : Search videos playable on mobile devices

java - 不通过 AndroidBenchmarkRunner 使用 IsolationActivity

java - Netbeans:如何自动将独立 Java 应用程序的 JAR 文件传输到远程位置

java - 如何使用 Spring MVC 从 API REST 获取对象

Android - 集成 ffmpeg 和 android-ndk-r9c

java - notifyDataSetChanged 不适用于 fragment