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           nullnull);

其中游标C的结果的第二个字段(StructuredName.DISPLAY_NAME)就是姓名,准确的说应该是“显示姓名”(因为姓名也以再细分为姓和名)。

如果还没有理解的话,也不要紧,之后我会把它讲的形像一点。

通讯录虽然不是一个什么难的东西,不过我想还是理顺一点好,免得过些天后又晕了。。

作者: holmes Zhang
来自博客园: http://www.cnblogs.com/3dant/archive/2010/12/09/1901709.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,否则保留追究法律责任的权利。

转载于:https://my.oschina.net/howaylee/blog/28743

Android通讯录查询篇--ContactsContract.Data 二相关推荐

  1. Android通讯录查询篇--ContactsContract.Data 二(续)

    这次主要要做的就是根据姓名来查找电话,并且加强对通讯录的理解. 以前做一些用到数据库的东西的时候,可能光看代码也是不好联系起各个数据之间的关系,所以我先想到的还是数据库.幸运的是,它还真是一个数据库. ...

  2. android通讯录管理(获取联系人,通话记录,短信消息),Android通讯录管理(获取联系人、通话记录、短信消息)(二)...

    Android通讯录管理(获取联系人.通话记录.短信消息)(二) 前言:上一篇博客介绍的是获取联系人的实现,本篇博客将介绍通话记录的实现. 界面布局: /Contact_Demo/res/layout ...

  3. Android通讯录管理(获取联系人、通话记录、短信消息)(二)

    Android通讯录管理(获取联系人.通话记录.短信消息)(二) 前言:上一篇博客介绍的是获取联系人的实现,本篇博客将介绍通话记录的实现. 同样的,你可以到这里下载源码:http://download ...

  4. 【朝花夕拾】Android性能篇之(二)Java内存分配

    前言       原文:[朝花夕拾]Android性能篇之(二)Java内存分配        在内存方面,相比于C/C++程序员,咱们java系程序员算是比较幸运的,因为对于内存的分配和回收,都交给 ...

  5. Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人

    Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人 公司最近的项目中遇到一个需求需要读取通讯录联系人,并需要支持对联系人的模糊查询及批量选取,网上找了好几个例子,模糊查询 ...

  6. Android Study 之 如何通过Data Binding提升撸码逼格(进阶篇)

    LZ-Says:每一次的选择,都将面临更多的希望,加油,而今迈步重头跃... 前言 前段时间,完结了一篇Data Binding前篇,地址如下: Android Study 之 如何通过Data Bi ...

  7. Android原生(Native)C开发之二 framebuffer篇

    为什么80%的码农都做不了架构师?>>>    Android原生(Native)C开发之二 framebuffer篇 如对Android原生(Natvie)C开发还任何疑问,请参阅 ...

  8. Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈)

    Android日志[进阶篇]一-使用 Logcat 写入和查看日志 Android日志[进阶篇]二-分析堆栈轨迹(调试和外部堆栈) Android日志[进阶篇]三-Logcat命令行工具 Androi ...

  9. Android自动化测试-Appium篇(二)

    Android自动化测试-Appium篇(二) 基于Appium的Android自动化测试环境部署 1. 安装Appium Desktop: a.访问Appium官网:http://appium.io ...

最新文章

  1. Everest 0.6 设置ADSL上网
  2. 【OpenCV学习】XML的读写
  3. 考系统架构设计师必看--微内核操作系统
  4. visual studio 2019配置OnnxRuntime+推理+vgg16
  5. Redis 实践笔记1---基础知识
  6. Java连接微软ad_Java:连接到Active Directory(AD)?
  7. 搭配对比学习,万能的 prompt 还能做可控文本生成
  8. ​​​​​​​微信、Facebook牵手合作,抗击全球新冠肺炎疫情
  9. mysql锁的应用场景_浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景
  10. JS设计模式——单例模式
  11. 精进:如何成为一个很厉害的人--作者:采铜
  12. MULTISIM下载安装
  13. Android入门之——百度地图开发(二)定位当前位置
  14. [C75][こすぷれ喫茶娘々]アマツカミの巫女-妖狐戦奇譚 汉化补丁
  15. 5分钟教你做一个WebView广告过滤器
  16. 7款让人惊叹的HTML5粒子动画特效
  17. 巧用ffmpeg从视频中截图
  18. Java中private方法可以被重写吗?
  19. linux中强行执行root权限
  20. FairyGUI Unity评估

热门文章

  1. 读zepto源码之工具函数
  2. 剑指Offer(Java版):二叉搜索树的后序遍历序列
  3. mysql 主从的几个参数
  4. 修改url 参数_SEO优化设计,如何处理网址的动态参数?
  5. 454. 四数相加 ||
  6. 无线网络(预处理+并查集)
  7. Code Style of Mangata
  8. linux7保存防火墙规则,centos7中没有service iptables save指令来保存防火墙规则
  9. 为什么录像总是很暗_深度:为什么看马拉多纳的踢球视频,并不觉得他很厉害?...
  10. html音乐静音代码,HTML Audio muted用法及代码示例