1. 调用系统的

  1. Cursor cursor = getContentResolver().query( 
  2.                 ContactsContract.Contacts.CONTENT_URI, nullnullnullnull); 
  3.         while (cursor.moveToNext()) { 
  4.  
  5.             // 获得通讯录中每个联系人的ID 
  6.             String contactId = cursor.getString(cursor 
  7.                     .getColumnIndex(ContactsContract.Contacts._ID)); 
  8.  
  9.             // 获得通讯录中联系人的名字 
  10.             String name = cursor 
  11.                     .getString(cursor 
  12.                             .getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); 
  13.             sb.append("名字:").append(name).append("\r\n"); 
  14.  
  15.             // 查看给联系人是否有电话,返回结果是String类型,1表示有,0表是没有 
  16.             String hasPhone = cursor 
  17.                     .getString(cursor 
  18.                             .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
  19.  
  20.             if (hasPhone.equalsIgnoreCase("1")) 
  21.                 hasPhone = "true"
  22.             else 
  23.                 hasPhone = "false"
  24.  
  25.             // 如果有电话,根据联系人的ID查找到联系人的电话,电话可以是多个 
  26.  
  27.             if (Boolean.parseBoolean(hasPhone)) { 
  28.                 Cursor phones = getContentResolver().query( 
  29.                         ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
  30.                         null
  31.                         ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
  32.                                 + " = " + contactId, nullnull); 
  33.                 sb.append("电话:"); 
  34.                 while (phones.moveToNext()) { 
  35.                     String phoneNumber = phones 
  36.                             .getString(phones 
  37.                                     .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
  38.                     sb.append(phoneNumber+" "); 
  39.                 } 
  40.                 sb.append("\r\n"); 
  41.                 phones.close(); 
  42.             } 
  43.  
  44.             // 查找email地址,这里email也可以有多个 
  45.  
  46.             Cursor emails = getContentResolver().query( 
  47.                     ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
  48.                     null
  49.                     ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " 
  50.                             + contactId, nullnull); 
  51.             sb.append("email:"); 
  52.             while (emails.moveToNext()) { 
  53.                 String emailAddress = emails 
  54.                         .getString(emails 
  55.                                 .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
  56.                 sb.append(emailAddress+" "); 
  57.             } 
  58.             sb.append("\r\n"); 
  59.             emails.close(); 
  60.  
  61.             // 获得联系人的地址 
  62.  
  63.             Cursor address = getContentResolver() 
  64.                     .query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, 
  65.                             null, 
  66.                             ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID 
  67.                                     + " = " + contactId, null, null); 
  68.             while (address.moveToNext()) { 
  69.                 // These are all private class variables, don’t forget to create 
  70.                 // them. 
  71.                 String poBox = address 
  72.                         .getString(address 
  73.                                 .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX)); 
  74.                 String street = address 
  75.                         .getString(address 
  76.                                 .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)); 
  77.                 String city = address 
  78.                         .getString(address 
  79.                                 .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)); 
  80.                 String state = address 
  81.                         .getString(address 
  82.                                 .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)); 
  83.                 String postalCode = address 
  84.                         .getString(address 
  85.                                 .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)); 
  86.                 String country = address 
  87.                         .getString(address 
  88.                                 .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY)); 
  89.                 String type = address 
  90.                         .getString(address 
  91.                                 .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE)); 
  92.             }
  93.  
  94.         }