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 ...
最新文章
- Everest 0.6 设置ADSL上网
- 【OpenCV学习】XML的读写
- 考系统架构设计师必看--微内核操作系统
- visual studio 2019配置OnnxRuntime+推理+vgg16
- Redis 实践笔记1---基础知识
- Java连接微软ad_Java:连接到Active Directory(AD)?
- 搭配对比学习,万能的 prompt 还能做可控文本生成
- ​​​​​​​微信、Facebook牵手合作,抗击全球新冠肺炎疫情
- mysql锁的应用场景_浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景
- JS设计模式——单例模式
- 精进:如何成为一个很厉害的人--作者:采铜
- MULTISIM下载安装
- Android入门之——百度地图开发(二)定位当前位置
- [C75][こすぷれ喫茶娘々]アマツカミの巫女-妖狐戦奇譚 汉化补丁
- 5分钟教你做一个WebView广告过滤器
- 7款让人惊叹的HTML5粒子动画特效
- 巧用ffmpeg从视频中截图
- Java中private方法可以被重写吗?
- linux中强行执行root权限
- FairyGUI Unity评估
热门文章
- 读zepto源码之工具函数
- 剑指Offer(Java版):二叉搜索树的后序遍历序列
- mysql 主从的几个参数
- 修改url 参数_SEO优化设计,如何处理网址的动态参数?
- 454. 四数相加 ||
- 无线网络(预处理+并查集)
- Code Style of Mangata
- linux7保存防火墙规则,centos7中没有service iptables save指令来保存防火墙规则
- 为什么录像总是很暗_深度:为什么看马拉多纳的踢球视频,并不觉得他很厉害?...
- html音乐静音代码,HTML Audio muted用法及代码示例