Android 获得联系人信息

Android  获得联系人信息在版本2.0后做了调整,Contacts.People接口由ContactsContract.Contacts代替,下面利用新的API查询联系人信息,代码如下:

public void getContact(){ //获得所有的联系人 Cursor cur = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); //循环遍历 if (cur.moveToFirst()) { int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID); int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); do { //获得联系人的ID号 String contactId = cur.getString(idColumn); //获得联系人姓名 String disPlayName = cur.getString(displayNameColumn); //查看该联系人有多少个电话号码。如果没有这返回值为0 int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if(phoneCount>0){ //获得联系人的电话号码 Cursor phones = getContentResolver().query (ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null); if(phones.moveToFirst()){ do{ //遍历所有的电话号码 String phoneNumber= phones.getString(phones.getColumnIndex (ContactsContract.CommonDataKinds.Phone.NUMBER)); System.out.println(phoneNumber); }while(phones.moveToNext()); } } } while (cur.moveToNext()); } } 在联系人的电话号码中有很多种,如果只想获得手机号码。代码如下: Cursor phones = mContext.getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId +" and "+ContactsContract.CommonDataKinds.Phone.TYPE+"="+ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE,null, null);

通过电话号码来获取联系人姓名的程序如下,通过ContactsContract.PhoneLookup.CONTENT_FILTER_URI来获取对应adress(电话号码)的信息。

public static String lookupPersonName(Context context, String address) { String personName = null; Uri personUri = Uri.withAppendedPath( ContactsContract.PhoneLookup.CONTENT_FILTER_URI, address); Cursor phoneCursor = context.getContentResolver().query(personUri, new String[] { ContactsContract.PhoneLookup.DISPLAY_NAME }, null, null, null); if (phoneCursor.moveToFirst()) { int indexPersonId = phoneCursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME); personName = phoneCursor.getString(indexPersonId); } phoneCursor.close(); return personName; }

你可能感兴趣的:(android,String,filter,null,mobile,电话)