Android读取通讯录信息

来源:互联网 发布:js从json中取值 编辑:程序博客网 时间:2024/06/06 02:29

       每当安装一个应用基本都会有要求读取你的联系人等信息的权限申请弹框申请,这当然是应用在偷偷搜集用户的信息。闭嘴没办法,项目也需要做这个。

     直接贴出这个方法,可以读取用户的手机号,联系人,通话次数和最近一次通话时间,当然你如果需要查询更多内容,可以直接添加查询参数并在Cursor中get到就可以。


private List<Contact> readContacts() {    ArrayList<Contact> data = new ArrayList<>();    Cursor cursor = getContentResolver().query(            ContactsContract.CommonDataKinds.Phone.CONTENT_URI,            new String[]{"contact_id", "display_name", Phone.NUMBER, "sort_key"}, null, null, "sort_key");    if (cursor != null) {        while (cursor.moveToNext()) {            Contact contact = new Contact();            String contactId = cursor.getString(0);            contact.setName(cursor.getString(1));            contact.setPhone(cursor.getString(2));            if (contactId != null) {                Cursor dataCursor = getContentResolver().query(                        ContactsContract.CommonDataKinds.Phone.CONTENT_URI,                        new String[]{"times_contacted", "last_time_contacted"},                        "contact_id=?", new String[]{contactId}, null);                if (dataCursor != null) {                    while (dataCursor.moveToNext()) {                        long date = dataCursor.getLong(1);                        SimpleDateFormat time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                        contact.setNumber(dataCursor.getString(0));                        contact.setLasttime(time.format(date));                    }                    data.add(contact);                    dataCursor.close();                }            }        }        cursor.close();    }    return data;}
Contact.class:
public class Contact {    private String name;    private String phone;    private String number;    private String lasttime;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPhone() {        return phone;    }    public void setPhone(String phone) {        this.phone = phone;    }    public String getNumber() {        return number;    }    public void setNumber(String number) {        this.number = number;    }    public String getLasttime() {        return lasttime;    }    public void setLasttime(String lasttime) {        this.lasttime = lasttime;    }}
方法很简单,就不注释了

原创粉丝点击