search

Home  >  Q&A  >  body text

Android 获取联系人。

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

PHP中文网PHP中文网2772 days ago429

reply all(2)I'll reply

  • 高洛峰

    高洛峰2017-04-17 17:41:23

    First query all the numbers, and then use the cursor to traverse

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-17 17:41:23

    Look at this code and you should be able to solve it
    //Get address book students
    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();
    

    reply
    0
  • Cancelreply