Android 获取联系人。
PHP中文网
PHP中文网 2017-04-17 17:39:23
0
2
428

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

PHP中文网
PHP中文网

认证高级PHP讲师

reply all(2)
小葫芦

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

大家讲道理

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();
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template