读取联系人
发布日期:2021-06-30 18:38:18
浏览次数:3
分类:技术文章
本文共 1769 字,大约阅读时间需要 5 分钟。
//读取联系人private ListView lvList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);lvList = (ListView) findViewById(R.id.lv_list);ArrayList> readContact = readContact();// System.out.println(readContact);lvList.setAdapter(new SimpleAdapter(this, readContact,R.layout.contact_list_item, new String[] { "name", "phone" },new int[] { R.id.tv_name, R.id.tv_phone }));}private ArrayList > readContact() {// 首先,从raw_contacts中读取联系人的id("contact_id")// 其次,根据contact_id从data表中查询出相应的电话号码和联系人名称// 然后,根据mimetype来区分哪个是联系人,哪个是电话号码Uri rawContactUri = 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(rawContactUri,new String[] { "contact_id" }, null, null, null);if (rawContactsCursor != null) {while (rawContactsCursor.moveToNext()) {String contactId = rawContactsCursor.getString(0);// 根据contact_id从data表中查询出相应的电话号码和联系人名称,实际上查询的是视图view_dataCursor 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;}
转载地址:https://linqiarui.blog.csdn.net/article/details/50764588 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月07日 17时34分43秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
RRT算法(快速拓展随机树)的Python实现
2019-04-30
D*算法
2019-04-30
强化学习(四) —— Actor-Critic演员评论家 & code
2019-04-30
RESTful API
2019-04-30
优化算法(四)——粒子群优化算法(PSO)
2019-04-30
数据在Oracle中的存储
2019-04-30
轨迹规划 trajectory planning
2019-04-30
AGV自动导引运输车
2019-04-30
Trie树(字典树)
2019-04-30
COMP7404 Machine Learing——KNN
2019-04-30
COMP7404 Machine Learing——SVM
2019-04-30