Java 从通讯簿中检索家庭联系人号码

Java 从通讯簿中检索家庭联系人号码,java,android,Java,Android,目前我有一个应用程序,它将检索所有联系人 详细信息和将显示所有可用的联系人姓名。但现在我想检索家庭和工作号码。我在任何地方都搜索了这些号码,但我找不到。怎么可能 我能做到这一点吗?请帮帮我 谢谢 我用这个密码得到了家庭号码 Cursor c = getContentResolver().query(Data.CONTENT_URI, new String[] {Data._ID, Phone.NUMBER, Data.MIMETYPE},

目前我有一个应用程序,它将检索所有联系人 详细信息和将显示所有可用的联系人姓名。但现在我想检索家庭和工作号码。我在任何地方都搜索了这些号码,但我找不到。怎么可能 我能做到这一点吗?请帮帮我

谢谢

我用这个密码得到了家庭号码

         Cursor c = getContentResolver().query(Data.CONTENT_URI,
                new String[] {Data._ID, Phone.NUMBER, Data.MIMETYPE},
                 Data.RAW_CONTACT_ID + "=?" + " AND "
                          + Data.MIMETYPE + "='" + Phone.TYPE_HOME + "'",
                 new String[] {String.valueOf(contactId)}, null);
但我需要的是使用单一查询获取家庭、工作、手机(带有姓名、电子邮件地址等)号码

使用此代码,它总是返回me type=0

Cursor c = getContentResolver().query(Data.CONTENT_URI,
                  null,
                  Data.CONTACT_ID + "=?",
                  new String[] {String.valueOf(contactId)}, null);

           while(c.moveToNext()){

           int type = c.getInt(c.getColumnIndex(Phone.TYPE));
           ..
           }

在查询的where子句中使用
电话。键入\u HOME
。。这将为您提供所需的nor..

确定最后我完成了任务。这里是我的代码

try this:
  int type = mCursor.getInt(mCursor.getColumnIndex(Phone.TYPE));
       the "type" value will be 1,2,3 or 4 where
        TYPE_HOME = 1;
        TYPE_MOBILE = 2;
        TYPE_WORK = 3;
        TYPE_OTHER = 7;
      String mobile = "";
  String home="";
  String work="";
  String fax="";
  String other="";

  String disName="";
  String pName="";
  String fName="";
  String lName="";
  String sName="";
  String mName="";

  String postBox="";
  String streat="";
  String country="";

  String emailAdd="";

    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));
            disName = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));




    ///*   
       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;
                   case Phone.TYPE_FAX_HOME:
                       fax=number;
                       break;
                   case Phone.TYPE_FAX_WORK:
                       fax=number;
                       break;
           }              

           }
           phones.close();

           Cursor name = cr.query(Data.CONTENT_URI, null,
                   Data.CONTACT_ID + " ="+id +" AND "+Data.MIMETYPE+"='"+StructuredName.CONTENT_ITEM_TYPE+"'", null, null);   
           while(name.moveToNext()){
            sName=name.getString(name.getColumnIndex(StructuredName.PREFIX));
            fName=name.getString(name.getColumnIndex(StructuredName.GIVEN_NAME));
            mName=name.getString(name.getColumnIndex(StructuredName.MIDDLE_NAME));
            lName=name.getString(name.getColumnIndex(StructuredName.FAMILY_NAME));
            sName=name.getString(name.getColumnIndex(StructuredName.SUFFIX));
            System.out.println(mName);
           }


           Cursor address = cr.query(Data.CONTENT_URI, null,
                   Data.CONTACT_ID + " ="+id +" AND "+Data.MIMETYPE+"='"+StructuredPostal.CONTENT_ITEM_TYPE+"'", null, null);   
           while(address.moveToNext()){
            postBox=address.getString(address.getColumnIndex(StructuredPostal.POBOX));
            streat=address.getString(address.getColumnIndex(StructuredPostal.STREET));
            mName=address.getString(address.getColumnIndex(StructuredPostal.COUNTRY));

            System.out.println(postBox);
           }

           Cursor email = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
                   Data.CONTACT_ID + " ="+id , null, null);   
           while(email.moveToNext()){
            emailAdd=email.getString(email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
           }