Android 获取联系人。

获取通讯录,一条记录里面只有一条电话号码没问题,但是如果有2条电话的话只能查询出来一条。
另外一条该怎么取?

阅读 3.4k
2 个回答
新手上路,请多包涵

先把所有的号码都查询出来,然后用游标遍历

看下这段代码应该可以解决
//获取通讯录学员
public void getLocalContactsInfos(Context context) {

ContentResolver cr = context.getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
LogUtil.e("contact count  ", cursor.getColumnCount());
while (cursor.moveToNext()) {
    //取得联系人名字
    int nameFieldColumnIndex = cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
    String name = cursor.getString(nameFieldColumnIndex);
    //取得电话号码
    String ContactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
    Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + ContactId, null, null);

    String PhoneNumber = "";
    //多个电话号码时遍历
    while (phone.moveToNext()) {
        PhoneNumber =  phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
        //格式化手机号
        PhoneNumber = PhoneNumber.replace("-", "");
        PhoneNumber = PhoneNumber.replace(" ", "");

      
    }
}
cursor.close();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题