1:androidmanifest.xml的内容

package="cn.itcast.contacts"

android:versionCode="1"

android:versionName="1.0">

android:label="@string/app_name">

android:targetPackage="cn.itcast.contacts" android:label="Tests for My App" />

里面重要的是搭建测试环境和添加,即读取和写入联系人信息的权限

2:读取的主要方法

/*

* 读取联系人的信息

*/

public void testReadAllContacts() {

Cursor cursor = this.getContext().getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,

null, null, null, null);

int contactIdIndex = 0;

int nameIndex = 0;

if(cursor.getCount() > 0) {

contactIdIndex = cursor.getColumnIndex(ContactsContract.Contacts._ID);

nameIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);

}

while(cursor.moveToNext()) {

String contactId = cursor.getString(contactIdIndex);

String name = cursor.getString(nameIndex);

Log.i(TAG, contactId);

Log.i(TAG, name);

/*

* 查找该联系人的phone信息

*/

Cursor phones = this.getContext().getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

null,

ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId,

null, null);

int phoneIndex = 0;

if(phones.getCount() > 0) {

phoneIndex = phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);

}

while(phones.moveToNext()) {

String phoneNumber = phones.getString(phoneIndex);

Log.i(TAG, phoneNumber);

}

/*

* 查找该联系人的email信息

*/

Cursor emails = this.getContext().getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,

null,

ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=" + contactId,

null, null);

int emailIndex = 0;

if(emails.getCount() > 0) {

emailIndex = emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA);

}

while(emails.moveToNext()) {

String email = emails.getString(emailIndex);

Log.i(TAG, email);

}

}

}

3:目前手机中的联系人信息,有两个联系人的信息,如图所示,

这是Hellen的联系信息

这是Mike的联系信息

4:测试结果,在控制台输出的内容为:

可以看到在控制台输出了两个联系人的信息。

//--------------------------------------

获取所有分组编号和组的名称

Cursor groupInfoCursor = getContentResolver().query(ContactsContract.Groups.CONTENT_URI, null, null, null, null);

while(groupInfoCursor.moveToNext()) {

int idIndex = groupInfoCursor.getColumnIndex(ContactsContract.Groups._ID);

int titleIndex = groupInfoCursor.getColumnIndex(ContactsContract.Groups.TITLE);

String id = groupInfoCursor.getString(idIndex);

String title = groupInfoCursor.getString(titleIndex);

}

groupInfoCursor.close();

java获取手机通讯录权限_android获取手机通讯录相关推荐

  1. java获取手机通讯录权限_Android读取手机通讯录联系人到自己项目

    本文实例为大家分享了Android读取手机通讯录联系人到项目的具体代码,供大家参考,具体内容如下 一.主界面代码如下: android:layout_width="match_parent& ...

  2. 安卓项目查手机电量功能_Android获取手机电池电量用法实例

    本文实例讲述了Android获取手机电池电量用法.分享给大家供大家参考.具体如下: 原理概述: 手机电池电量的获取在应用程序的开发中也很常用,Android系统中手机电池电量发生变化的消息是通过Int ...

  3. android 获取u盘名字_Android 获取U盘的卷标(支持中文卷标)

    [在学习Android开发的过程你,你往往会去借鉴别人的应用是怎么开发的,那些漂亮的动画和精致的布局可能会让你爱不释手,作为一个开发者,你可能会很想知道这些效果界面是怎 1: 盘符 和 卷标的区别 之 ...

  4. adb修改什么文件获取root权限_Android获取ROOT权限的通用方法

    背景 自从Android问世以后,给手机获取ROOT权限变成了玩机爱好者老生常谈的话题.拥有手机,却不能拥有操作手机的最高权限,这对于手机爱好者而言,这怎么可以忍?所以无论Android升到什么什么版 ...

  5. java手机振动软件_Android实现手机震动效果

    本文实例介绍了Android实现手机震动.抖动效果,分享给大家供大家参考,具体内容如下 (1)布局文件如下 xmlns:tools="http://schemas.android.com/t ...

  6. java实现打手机电话功能_Android 实现手机拨打电话的功能

    一部手机最常用的功能就是打电话和发短信了,在Android开发中我们如何通过程序拨打电话呢?本文就给出一个用Android手机拨打电话的简单的实例. 下面是开发此实例的具体步骤: 一.新建一个Andr ...

  7. requestPermissions读写手机存储权限_Android 11 开发者常见问题: 存储 | FAQ?第二期

    我们在 Android 10 中首次引入了 "分区存储" 的概念,旨在保护应用和用户数据并减少文件混乱.自此之后我们收到了开发者们的宝贵建议,这些建议有助于我们对该功能的持续优化, ...

  8. requestPermissions读写手机存储权限_Android 11 开发者常见问题:存储|FAQ?第二期

    我们在 Android 10 中首次引入了 "分区存储" 的概念,旨在保护应用和用户数据并减少文件混乱.自此之后我们收到了开发者们的宝贵建议,这些建议有助于我们对该功能的持续优化, ...

  9. 安卓获取浏览器上网记录_Android 获取浏览器当前分享页面的截屏示例

    今天在项目中碰见这么一个需求:获取 Chrome 浏览器分享时,页面的截屏.静下来一想,既然是分享,那么肯定得通过 Intent 来传递数据,如果真的能获取到 Chrome 分享页面时的截屏,那么 I ...

最新文章

  1. hbuilderX的upx单位是什么鬼?
  2. 内核同步对性能的影响及perf的安装和简单的使用
  3. 保护模式及其编程——实模式与保护模式的切换
  4. 第九章 常用模块(续)
  5. POPUP_TO_CONFIRM
  6. Java中单链表的实现
  7. Flink 如何实时分析 Iceberg 数据湖的 CDC 数据
  8. 【STM32】GPIO之LED
  9. Java开发人员常用网站收录
  10. Linux下HTTP Server
  11. 利用Apperance协议定义View的全局外观
  12. 【Discuz系列教程2】论坛入口forum.php
  13. iOS 在CollectionView上做展开收起动画
  14. 【JY】STKO助力OpenSEES系列:结构模态分析以及动力特性(MDOF与等效SDOF验证)
  15. 如何评估互联网广告效果
  16. 北京大学计算机系张润楠,▶拜泉县第一中学2019年高考喜报
  17. Stacked Hourglass Networks for Human Pose Estimation
  18. 文字烟雾消散特效制作
  19. spire.doc.free2.7.3生成目录后修改目录的字体
  20. 三种快排及四种优化方式

热门文章

  1. 高3米直径10的半圆形求面积是多少
  2. android 代码设置密码,android-如何在MIFARE Ultralight EV1标签上设置和取消设置密码?...
  3. 用文心大模型生成剪纸风格的城市插画
  4. 透明位图Ron Gery Microsoft 网络开发技术小组
  5. 原生app登录 后台方案(token方案)
  6. 小插曲--树莓派屏幕分辨率调整
  7. 计算机使用技巧大全 书,总算明白电脑使用技巧大全
  8. WZOI-348机动车违章识别系统
  9. win11一开机就显示“无法打开这个应用,查看Microsoft store,了解有关Nahimic的详细信息”怎么解决?
  10. 房价基本上决定于货币政策.----看中国货币发行量增长