Android通讯录查询篇--ContactsContract.Data 二
2019独角兽企业重金招聘Python工程师标准>>>
上次说Data.MIMETYPE这个玩意很重要,官方的文档中描述了一大段的话。里面比较重要的几点是:
1、在Data中有一大段的公共数据段,DATA1~DATA15。这名子咋一看,真搞笑,哪有这样为数据命名的,神也记不住是干什么的的啊!
2、上面说的那些公共数据段所存的数据类型是由这个MIMETYPE决定的。
虽说这两个重要,不过刚看到这里,我还是懵了,这到底是个什么玩意嘛。(当然这很有可能是因为英文水平差,没看完全懂的原因。)
再看看官方文档,上面有个例子说,如果MIMETYPE的值是Phone.CONTENT_ITEM_TYPE,则DATA1就是电话号码,如果MIMETYPE的值是Email.CONTENT_ITEM_TYPE则DATA1的值就是E-mail地址。这样一说,又似乎明白了点。(还是举实例子来的实在!)
在上次说的那个官方代码里面不就有将MIMETYPE赋值为Phone.CONTENT_ITEM_TYPE的么。所以那个查询就用来查电话了。
在MIMETYPE的描述里面说,它可以被赋许多值:
StructuredName.CONTENT_ITEM_TYPE
Phone.CONTENT_ITEM_TYPE
Email.CONTENT_ITEM_TYPE
Photo.CONTENT_ITEM_TYPE
Organization.CONTENT_ITEM_TYPE
Im.CONTENT_ITEM_TYPE
Nickname.CONTENT_ITEM_TYPE
Note.CONTENT_ITEM_TYPE
StructuredPostal.CONTENT_ITEM_TYPE
GroupMembership.CONTENT_ITEM_TYPE
Website.CONTENT_ITEM_TYPE
Event.CONTENT_ITEM_TYPE
Relation.CONTENT_ITEM_TYPE
现在我们知道的有用Phone那个可以查电话,那用哪个查姓名呢?
再之后看文档时候可以明白把StructuredName.CONTENT_ITEM_TYPE给MINETYPE就行了。(但刚开始的时候可能是因为看英文,怎么都没把它们好的联系起来。)
所将官方的代码改成这样的话就可以查询姓名了。
1
|
Cursor c = getContentResolver().query(Data.CONTENT_URI,
|
2
|
new String[]{Data._ID,StructuredName.DISPLAY_NAME, },
|
3
|
Data.MIMETYPE + "='" + StructuredName.CONTENT_ITEM_TYPE + "'" ,
|
4
|
null , null );
|
其中游标C的结果的第二个字段(StructuredName.DISPLAY_NAME)就是姓名,准确的说应该是“显示姓名”(因为姓名也以再细分为姓和名)。
如果还没有理解的话,也不要紧,之后我会把它讲的形像一点。
通讯录虽然不是一个什么难的东西,不过我想还是理顺一点好,免得过些天后又晕了。。
来自博客园: http://www.cnblogs.com/3dant/archive/2010/12/09/1901709.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利。
转载于:https://my.oschina.net/howaylee/blog/28743
Android通讯录查询篇--ContactsContract.Data 二相关推荐
- Android通讯录查询篇--ContactsContract.Data 二(续)
这次主要要做的就是根据姓名来查找电话,并且加强对通讯录的理解. 以前做一些用到数据库的东西的时候,可能光看代码也是不好联系起各个数据之间的关系,所以我先想到的还是数据库.幸运的是,它还真是一个数据库. ...
- android通讯录管理(获取联系人,通话记录,短信消息),Android通讯录管理(获取联系人、通话记录、短信消息)(二)...
Android通讯录管理(获取联系人.通话记录.短信消息)(二) 前言:上一篇博客介绍的是获取联系人的实现,本篇博客将介绍通话记录的实现. 界面布局: /Contact_Demo/res/layout ...
- Android通讯录管理(获取联系人、通话记录、短信消息)(二)
Android通讯录管理(获取联系人.通话记录.短信消息)(二) 前言:上一篇博客介绍的是获取联系人的实现,本篇博客将介绍通话记录的实现. 同样的,你可以到这里下载源码:http://download ...
- 【朝花夕拾】Android性能篇之(二)Java内存分配
前言 原文:[朝花夕拾]Android性能篇之(二)Java内存分配 在内存方面,相比于C/C++程序员,咱们java系程序员算是比较幸运的,因为对于内存的分配和回收,都交给 ...
- Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人
Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人 公司最近的项目中遇到一个需求需要读取通讯录联系人,并需要支持对联系人的模糊查询及批量选取,网上找了好几个例子,模糊查询 ...
- Android Study 之 如何通过Data Binding提升撸码逼格(进阶篇)
LZ-Says:每一次的选择,都将面临更多的希望,加油,而今迈步重头跃... 前言 前段时间,完结了一篇Data Binding前篇,地址如下: Android Study 之 如何通过Data Bi ...
- Android原生(Native)C开发之二 framebuffer篇
为什么80%的码农都做不了架构师?>>> Android原生(Native)C开发之二 framebuffer篇 如对Android原生(Natvie)C开发还任何疑问,请参阅 ...
- Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)
Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Androi ...
- Android自动化测试-Appium篇(二)
Android自动化测试-Appium篇(二) 基于Appium的Android自动化测试环境部署 1. 安装Appium Desktop: a.访问Appium官网:http://appium.io ...
最新文章
- JS实现-页面数据无限加载
- html5 直接获取当前位置,HTML5调用百度地图API获取当前位置并直接导航目的地的方法...
- DockOne微信分享( 九十一):打造百亿级数据处理量的弹性调度容器平台
- python建立数据库并序列化_Python之数据序列化(json、pickle、shelve)
- C++类实例以及子类在内存中的分配
- 查看修改swap空间大小
- (小白)函数一: 声明函数的方法—语句定义法和表达式定义法的区别
- cclink 和发那科机器人_FANUC机器人焊枪工具坐标系设定
- 写在2009年的开始
- 带你读论文丨异常检测算法及发展趋势分析
- python中findroot_Python源码问题算负数平方根无结果输出何解,python负数,def findRoot...
- Spring攻略学习笔记(13)------继承Bean配置
- 快速配置Maven到OSChina中央库的教程
- 对象 'dbo.xxx' 不存在,或对此操作无效。为表创建触发器,为什么提示对象不存在?
- php發送郵件_PHP发送邮件类库PHPMailer的简单使用
- 论文笔记_S2D.52_CMRNet++:在激光雷达地图中进行内参未知的相机的单目视觉定位
- linux通过usb给windows,如何从Linux创建Windows USB安装程序 | MOS86
- 【Codeforces Round #546 (Div. 2) E】Nastya Hasn't Written a Legend【线段树】
- TR外汇黑平台资金盘深度揭秘,谨防上当受骗,迟早会跑路
- 八爪鱼抓取html,网页数据爬取方法详解 - 八爪鱼采集器
热门文章
- SAP HANA Express Edition (HXE)-二进制安装使用步骤
- 聊天机器人不仅能省下客服成本 体验可能会更好
- 免费Ebook 分享《Silverlight for Windows Phone Toolkit in Depth》
- C#中对XML文件的一些基本操作[转载]
- error C2065: “LOAD_LIBRARY_SEARCH_SYSTEM32”: 未声明的标识符
- 大数据面试求职经验总结
- 数据挖掘二手车价格预测 Task05:模型融合
- 大数据开发笔记(一):HDFS介绍
- Mybatis 动态传入order by 参数排序无效
- mysql 直方图_MySQL直方图