【问题标题】:show List of all contacts with phonenumber in android? [duplicate]在android中显示所有带有电话号码的联系人列表? [复制]
【发布时间】:2012-08-29 06:06:42
【问题描述】:

可能重复:
How to read contacts on Android 2.0

是否可以在电话簿中使用PhoneNumber 创建我所有ContactsList,但条件是如果它没有PhoneNumber,那么它只显示该记录的名称。我希望所有这些都在我的 android 应用程序中。我一直坚持下去。

【问题讨论】:

标签: android listview adapter contactscontract


【解决方案1】:

通过这种方式,您找到了所有没有联系号码的联系人姓名。

while (cur.moveToNext()) {
                String id = cur.getString(cur
                        .getColumnIndex(ContactsContract.Contacts._ID));
                String name = cur
                        .getString(cur
                                .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
}

谢谢。

【讨论】:

    【解决方案2】:

    读取所有联系人

     public void readContacts() {
     ContentResolver cr = getContentResolver();
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
     null, null, null);
    
     if (cur.getCount() > 0) {
     while (cur.moveToNext()) {
     String id = cur.getString(cur
     .getColumnIndex(ContactsContract.Contacts._ID));
     String name = cur
     .getString(cur
     .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
     if (Integer
     .parseInt(cur.getString(cur
     .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
     System.out.println("name : " + name + ", ID : " + id);
    
     // get the phone number
     Cursor pCur = cr.query(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
     null,
     ContactsContract.CommonDataKinds.Phone.CONTACT_ID
     + " = ?", new String[] { id }, null);
     while (pCur.moveToNext()) {
     String phone = pCur
     .getString(pCur
     .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
     System.out.println("phone" + phone);
     }
     pCur.close();
    
     // get email and type
    
     Cursor emailCur = cr.query(
     ContactsContract.CommonDataKinds.Email.CONTENT_URI,
     null,
     ContactsContract.CommonDataKinds.Email.CONTACT_ID
     + " = ?", new String[] { id }, null);
     while (emailCur.moveToNext()) {
     // This would allow you get several email addresses
     // if the email addresses were stored in an array
     String email = emailCur
     .getString(emailCur
     .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
     String emailType = emailCur
     .getString(emailCur
     .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));
    
     System.out.println("Email " + email + " Email Type : "
     + emailType);
     }
     emailCur.close();
    
     // Get note.......
     String noteWhere = ContactsContract.Data.CONTACT_ID
     + " = ? AND " + ContactsContract.Data.MIMETYPE
     + " = ?";
     String[] noteWhereParams = new String[] {
     id,
     ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE };
     Cursor noteCur = cr.query(
     ContactsContract.Data.CONTENT_URI, null, noteWhere,
     noteWhereParams, null);
     if (noteCur.moveToFirst()) {
     String note = noteCur
     .getString(noteCur
     .getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));
     System.out.println("Note " + note);
     }
     noteCur.close();
    
     // Get Postal Address....
    
     String addrWhere = ContactsContract.Data.CONTACT_ID
     + " = ? AND " + ContactsContract.Data.MIMETYPE
     + " = ?";
     String[] addrWhereParams = new String[] {
     id,
     ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE };
     // Cursor addrCur =
     // cr.query(ContactsContract.Data.CONTENT_URI,
     // null, null, null, null);
     Cursor addrCur = cr.query(
     ContactsContract.Data.CONTENT_URI, null, addrWhere,
     addrWhereParams, null);
    
     while (addrCur.moveToNext()) {
     String poBox = addrCur
     .getString(addrCur
     .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX));
     String street = addrCur
     .getString(addrCur
     .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
     String city = addrCur
     .getString(addrCur
     .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
     String state = addrCur
     .getString(addrCur
     .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
     String postalCode = addrCur
     .getString(addrCur
     .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
     String country = addrCur
     .getString(addrCur
     .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
     String type = addrCur
     .getString(addrCur
     .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));
    
     // Do something with these....
    
     }
     addrCur.close();
    
     // Get Instant Messenger.........
     String imWhere = ContactsContract.Data.CONTACT_ID
     + " = ? AND " + ContactsContract.Data.MIMETYPE
     + " = ?";
     String[] imWhereParams = new String[] {
     id,
     ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE };
     Cursor imCur = cr.query(ContactsContract.Data.CONTENT_URI,
     null, imWhere, imWhereParams, null);
     if (imCur.moveToFirst()) {
     String imName = imCur
     .getString(imCur
     .getColumnIndex(ContactsContract.CommonDataKinds.Im.DATA));
     String imType;
     imType = imCur
     .getString(imCur
     .getColumnIndex(ContactsContract.CommonDataKinds.Im.TYPE));
     }
     imCur.close();
    
     // Get Organizations.........
    
     String orgWhere = ContactsContract.Data.CONTACT_ID
     + " = ? AND " + ContactsContract.Data.MIMETYPE
     + " = ?";
     String[] orgWhereParams = new String[] {
     id,
     ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE };
     Cursor orgCur = cr.query(ContactsContract.Data.CONTENT_URI,
     null, orgWhere, orgWhereParams, null);
     if (orgCur.moveToFirst()) {
     String orgName = orgCur
     .getString(orgCur
     .getColumnIndex(ContactsContract.CommonDataKinds.Organization.DATA));
     String title = orgCur
     .getString(orgCur
     .getColumnIndex(ContactsContract.CommonDataKinds.Organization.TITLE));
     }
     orgCur.close();
     }
     }
     }
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 2014-04-22
      相关资源
      最近更新 更多