`

Android中读取电话本Contacts联系人的所有电话号信息

 
阅读更多

1.首先,要知道android 的contacts里的电话信息有多类:moblie,家庭,工作,传真等。如图:

2.android的Contacts是通过ContentProvider来提供的,其实android把contacts和SMS给组织成数据库文件了,你可以在File Explorer 的/data/data/com.android.provider.contacts下找到contacts.db,这就是电话本数据库文件,你手机里的contacts信息都在这个数据库的各张表里。

3.知道contacts信息是在一个数据库里就要知道这张数据库里的都有什么表,这些表的字段都有什么。我们可以把这个contacts.db文件提取出来,再用SQLite Expert Professional 2这个软件打开,就可以看到数据库的信息了。如图:

4.可以看出和API说的一样,people和phones都是一张表,注意下phones这张表,这里就有我们要的所有电话号码信息。也可以看到以下两点:

4.1:phones表中的person字段对应为people表中的_id;

4.2: phones表中的type字段就是API中Contacts.PhonesColumns的TYPE字段,这个就是电话的7个分类,TYPE=2为moblie

5.这样就可以用代码来提取出来数据了,要注意一点,在用query()查找时的Uri直接指向phones表就OK。

6.下面是一个完整的方法代码:

7.从上面的代码可以总结一点经验,在不知道数据库表的字段时,可以用下面的方法来打印出来,就可以清楚后,再应用了:

分享到:
评论

相关推荐

    Android电话、短信、联系人相关操作源码合集

    所有的通话记录保存在contacts2.db数据库文件的calls表中,本代码将calls表中的电话号显示在ListView控件中。 (4)send_sms_activity通过系统程序发送短信 (5)send_sms通过SmsManager类直接发送短信 (6)save...

    Android实现获取联系人电话号码功能

    本篇文档主要记录一下获取联系人的电话号码的一种方式。 1、选择联系人 ............ //构造一个隐式的Intent,拉起联系人界面 final Intent pickIntent = new Intent(Intent.ACTION_PICK, ContactsContract....

    Android利用Intent读取和更新通讯录

    本节演示如何在安卓系统中通过用户配置文件(user profile)读取和更新该手机的所有联系人信息,以及如何导航到用户配置文件中的这些联系人。 二、基本概念  1、什么是 User Profile 用户配置文件(user profile)...

    contact_picker:Flutter插件,用于从通讯录中选择联系人

    但是,扩展插件以从联系人请求其他属性(例如地址)或获取联系人的完整记录(欢迎PR)应该很容易。 使用插件 请按照pub上“选项卡中的说明进行操作。 之后,在Flutter应用中实例化ContactPicker并在其上调用select...

    AndroidJsonListView:android 中使用原生类进行简单的 JSON 数据解析

    这是一个非常简单的 JSON,它为我们提供了联系人列表,其中每个节点都包含联系人信息,例如姓名、电子邮件、地址、性别和电话号码。 您可以通过访问获取此 JSON 数据 { "contacts": [ { "id": "c200", "name": ...

    自写的Android直接发送短信的方法.rar

    自写的Android直接发送短信的方法,这个不是聊天程序,是手机发短信程序,自己写的,没有使用Android中的固定模块,下面是自写的发短信代码片段,供参考:  重写的按钮监听方法  if(v == select){//按下了选择联系...

    android-multipicker-library:Android Multipicker库

    更少的代码来捕获图像/视频/文件从设备选择图像或拍照从设备中选择视频或录制一个选择设备上可用的文件选择设备上可用的音频文件从电话簿中选择一个联系人与几乎所有内容提供商一起使用获取有关您可能需要的媒体的...

    联系人和短信报告:电话联系人和短信报告来自智能手机或平板电脑的文档

    欢迎电话联系人和SMS报告是一种软件,可让您使用所有智能手机联系人和SMS消息创建Web文档。 借助网络浏览器,您可以轻松,友好地浏览这些信息。要求具有GNU / Linux或Macintosh的计算机。 Gtkmm(GTK +和GNOME的C ++...

    contacts-app:最酷的通讯录应用

    要求用户帐号创建联系人删除联系人编辑联系人联系人字段应包括名姓公司名称电话地址生日补充笔记搜索联系人列表通过标记/标签对联系人进行分组/排序阶段 2 功能将项目作为本机应用程序移植到 OSX、iOS 和 Android ...

    Android使用ContentResolver搜索手机通讯录的方法

    输入搜索人员名字a ,会将所有以a开头的名字都显示出来,输入*,则所有通讯录中的人名显示于AutoCompleteView的AdapterView里,若发生了User选择事件后,会将勾选的联系人电话号码显示于TextView里。 此程序中用到了...

    adb1.0.26包含fastboot.exe

    ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。 基本用法 命令语法 ...

Global site tag (gtag.js) - Google Analytics