中易网

android开发怎样获取通讯录联系人信息

答案:1  悬赏:80  
解决时间 2021-01-16 08:36
  • 提问者网友:别再叽里呱啦
  • 2021-01-15 10:38
android开发怎样获取通讯录联系人信息
最佳答案
  • 二级知识专家网友:傲气稳了全场
  • 2021-01-15 11:20
要获取通讯录的联系人信息,只有通过系统联系人应用的内容提供者,才能访问到联系人数据库,下面有一个代码演示
代码演示
private ArrayList> readContact() {
    // 首先,从raw_contacts中读取联系人的id("contact_id")
    // 其次, 根据contact_id从data表中查询出相应的电话号码和联系人名称
    // 然后,根据mimetype来区分哪个是联系人,哪个是电话号码
    Uri rawContactsUri = Uri
            .parse("content://com.android.contacts/raw_contacts");
    Uri dataUri = Uri.parse("content://com.android.contacts/data");
    ArrayList> list = new ArrayList<>();
    // 从raw_contacts中读取联系人的id("contact_id")
    Cursor rawContactsCursor = getContentResolver().query(rawContactsUri,
            new String[]{"contact_id"}, null, null, null);
    if (rawContactsCursor != null) {
        while (rawContactsCursor.moveToNext()) {
            String contactId = rawContactsCursor.getString(0);
            // System.out.println(contactId);
            // 根据contact_id从data表中查询出相应的电话号码和联系人名称, 实际上查询的是视图view_data
            Cursor dataCursor = getContentResolver().query(dataUri,
                    new String[]{"data1", "mimetype"}, "contact_id=?",
                    new String[]{contactId}, null);
            if (dataCursor != null) {
                HashMap map = new HashMap();
                while (dataCursor.moveToNext()) {
                    String data1 = dataCursor.getString(0);
                    String mimetype = dataCursor.getString(1);
                    // System.out.println(contactId + ";" + data1 + ";"
                    // + mimetype);
                    if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {
                        map.put("phone", data1);
                    } else if ("vnd.android.cursor.item/name"
                            .equals(mimetype)) {
                        map.put("name", data1);
                    }
                }
                list.add(map);
                dataCursor.close();
            }
        }
        rawContactsCursor.close();
    }
    return list;
}

手机联系人图片:



这段代码运行后的图片



我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息