前段时间做项目的时候发现如果授权微信联系人信息后,我的系统联系人列表中会多出一些联系人,进去一看是微信插入的。我再获取联系人列表的时候,会把这部分空的联系人一并拿到,当时在想怎么办这部分联系人过滤掉呢,无意间发现联系人中以这样一个字段account_type:通过Log日志发现他有好几种类型:sim ,系统的,神奇的发现了com.tencent.mm.account 于是乎我小高兴了一把,我再查询数据库的时候将其过滤。
下面是过滤代码
Cursor c = cr
.query(ContactsContract.Data.CONTENT_URI,
null,
"mimetype='vnd.android.cursor.item/phone_v2' or mimetype='vnd.android.cursor.item/name' and account_type!='com.tencent.mm.account'",
null, "mimetype desc");
通过这个条件就能把微信空号联系人过滤掉