指定类型获取号码 private Cursor getPhoneByType(String contactId, int type) { Cursor phone = context.getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId + " AND " + ContactsContract.CommonDataKinds.Phone.TYPE + "=" + type, null, null); return phone; } Cursor phone = null; // 获取手机号码 phone = getPhoneByType(contactId, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE); while (phone.moveToNext()) { Log.i("phone",String.valueOf(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); mobilePhone = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); Log.i("mobilePhone", mobilePhone); } // //获取家庭号码 phone = getPhoneByType(contactId, ContactsContract.CommonDataKinds.Phone.TYPE_HOME); while (phone.moveToNext()) { homePhone = phone .getString(phone .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); Log.i("homePhone", homePhone); } // //获取单位传真 phone = getPhoneByType(contactId, ContactsContract.CommonDataKinds.Phone.TYPE_FAX_WORK); while (phone.moveToNext()) { fax = phone .getString(phone .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); // Log.i("fax", fax); } // //获取单位电话 phone = getPhoneByType(contactId, ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE); while (phone.moveToNext()) { workMobile = phone .getString(phone .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); } 或者 Cursor phone = context.getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId , null, null); //取得电话号码(可能存在多个号码) while (phone.moveToNext()) { listPhone.add( phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); Log.i("phone",phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))); String number=phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); String phoneNumberType = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); Log.i("type", phoneNumberType); switch (Integer.parseInt(phoneNumberType)) { case 1: homePhone=number; break; case 2: mobilePhone=number; break; case 3: workMobile=number; break; case 4: fax=number; break; default: break; } }