读取联系人
发布日期: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秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

神经网络调参实战(四)—— 加深网络层次 & 批归一化 batch normalization 2019-04-30
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(1)—— 假设检验(μ&卡方检验&方差检验(F检验))&相关系数(皮尔逊&斯皮尔曼) 2019-04-30
RRT算法(快速拓展随机树)的Python实现 2019-04-30
路径规划(二) —— 轨迹优化(样条法) & 局部规划(人工势能场法) & 智能路径规划(生物启发(蚁群&RVO) & 强化学习) 2019-04-30
D*算法 2019-04-30
强化学习(四) —— Actor-Critic演员评论家 & code 2019-04-30
RESTful API 2019-04-30
优化算法(四)——粒子群优化算法(PSO) 2019-04-30
数据挖掘与数据分析(三)—— 探索性数据分析EDA(多因子与复合分析) & 可视化(2)——回归分析(最小二乘法&决定系数&残差不相关)&主成分分析&奇异值分解 2019-04-30
数据在Oracle中的存储 2019-04-30
优化算法(五)—人工蜂群算法Artificial Bee Colony Algorithm(ABC) 2019-04-30
轨迹规划 trajectory planning 2019-04-30
AGV自动导引运输车 2019-04-30
Trie树(字典树) 2019-04-30
COMP7404 Machine Learing——Logistic Regression 2019-04-30
COMP7404 Machine Learing——Regularization(参数C) 2019-04-30
COMP7404 Machine Learing——KNN 2019-04-30
COMP7404 Machine Learing——SVM 2019-04-30
COMP7404 Machine Learing——Decision Tree & Random Forests 2019-04-30
COMP7404 Machine Learing——Hyperparameter Grid Search & Nested Cross-Validation 2019-04-30