1.在AndroidManifest.xml设置访问通讯的权限:

//添加访问通讯录的权限

2.模拟获取通讯录的名称与电话号码,然后用ListView进行显示,现在xml文件中添加ListView,

android:id="@+id/contact_listview"

android:layout_width="match_parent"

android:layout_height="match_parent"

>

3.在Activity中,配置ListView(核心代码)

private ListView listView;

private ArrayAdapter adapter; //适配器

List contactList = new ArrayList(); //通讯获取的数据

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

listView = (ListView)findViewById(R.id.contact_listview);

adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, contactList);

listView.setAdapter(adapter);

/*获取通讯录数据

* 1.先判断是否已经有读取通讯录的权限

* 2.如果没有的话,询问用户,如果有的话,直接读取通讯录的数据*/

//1

if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED ) {

//未获得权限,询问用户

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_CONTACTS}, 1);

} else {

//已经权限

readContacts();

}

}

//读取通讯录数据

public void readContacts() {

Cursor contactCursor = null;

try {

contactCursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);

if ( contactCursor != null ) {

while (contactCursor.moveToNext()) {

//读取通讯录数据

String name = contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));

String phoneNumber = contactCursor.getString(contactCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

contactList.add(name + "

" + phoneNumber);

}

adapter.notifyDataSetChanged(); //刷新ListView

}

}catch ( SecurityException e) {

e.printStackTrace();

}

}

//权限选择结果回调

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

switch (requestCode) {

case 1:

{

if ( grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED ) {

readContacts();

} else {

Toast.makeText(this, "你不能读取用户通讯录", Toast.LENGTH_SHORT).show();

}

}

break;

default:

break;

}

}

ok

java访问手机里的通讯录,访问手机通讯录(示例代码)相关推荐

  1. php汉字转区位码,PHP里实现汉字转区位码的示例代码_php

    以下为引用的内容: global $PHP_SELF; //echo $PHP_SELF; $t1=$_POST['textfield1']; $t2=$_POST['textfield2']; $t ...

  2. php 区位码字符,PHP里实现汉字转区位码的示例代码

    PHP里实现汉字转区位码的示例代码 PHP里如何实现汉字转区位码这个问题一直困扰这大多程序员,那么下面这个源码实例相信能给大家带来很大的帮助. 以下为引用的内容: global $PHP_SELF; ...

  3. java printwriter 文件,java使用PrintWriter写文件,javaprintwriter写,下面示例代码演示使用Pr...

    java使用PrintWriter写文件,javaprintwriter写,下面示例代码演示使用Pr 下面示例代码演示使用PrintWriter方法写文件. PrintWriter的构造函数接受Fil ...

  4. H5 页面设置了字体的粗细样式,但是在华为手机里微信打开访问样式不生效?

    问题 字体样式设置了 font-weight: bold;,但是效果出不来 span {font-weight: bold; } 原因 产生这个问题的原因就是自己在华为手机里设置了字体: 选择默认即可 ...

  5. android手机里照片恢复,安卓手机上误删的照片 要怎样才能找回?

    不论是不是手贱,我们在手机(这里指安卓手机)上误删照片时有发生.对此你可能会觉得无关痛痒,照片没了就没,对我来说也没什么大不了.不过,如果那张照片对你非常重要,或可能藏着一段美好的回忆,而且恰巧你之前 ...

  6. java 二十四节气,eoLinker-API_Shop_二十四节气查询_API接口_Java调用示例代码

    eoLinker-API Shop 二十四节气查询 Java调用示例代码 二十四节气查询 二十四节气的时间.由来.习俗以及养生 该产品拥有以下APIs: 1.查询二十四节气 2.查询节气详情 注意,该 ...

  7. java异常判断_Java异常退出条件的判断示例代码

    无论是功能性代码还是算法性代码,程序都是一系列流程的合集 既然是流程就分为:一般流程和异常流程: 一般流程保证了基本功能: 异常流程则是对程序稳定性的保证,不能因为一些非法输入,项目就挂了: 注意,布 ...

  8. java 静态初始化数据_Java 静态数据初始化的示例代码

    无论创建多少个对象,静态数据都只占用一份存储区域.static关键字不能应用于局部变量,因此它只能作用于域.如果一个域是静态的基本类型域,且也没有对它进行初始化,那么它就会获得基本类型的标准初始值:如 ...

  9. java实现图像对比度增强_java图片对比度调整示例代码

    java图片对比度调整示例代码 发布于 2020-12-31| 复制链接 摘记: 前言本文主要给大家介绍了关于java图片对比度调整的方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍 ...

  10. 局域网计算机访问,局域网里的计算机访问

    A.网络协议配置问题, B.Win XP计划任务的问题. 但如果其它Windows电脑在网上邻居中根本看不到WinXP那台电脑,便可能是用户锁定和安全策略没有设置好.这时就需要从以下几个方面入 ...

最新文章

  1. 《评人工智能如何走向新阶段》后记(再续16)
  2. Homebrew 1.9发布,将支持Linux与Windows 10
  3. 通过BeanFactory获取bean的几种方法
  4. js进阶 11-16 jquery如何查找元素的父亲、祖先和子代、后代
  5. hyperworks2019安装教程
  6. [论文浅析]ICLR2017 跨语言,跨任务,跨领域序列标注
  7. C++shell sort希尔排序的实现算法之一(附完整源码)
  8. bv值是什么意思_BV出爆款了,今年买包怎能不盘一只“云朵”?
  9. python3入门与实践
  10. python开发学习-day03(set集合、collection系列 、深浅拷贝、函数)
  11. 《R语言机器学习:实用案例分析》——1.8节总结
  12. 【劲峰论道时空分析技术-学习笔记】1 时空数据和时空变量时空过程和时空机理
  13. 人均维护服务器数量,华为FusionCube一体机助力金华职业技术学院构建最佳云平台...
  14. Bitmap 图片说明
  15. 软件安全实验——lab10(一、基于时间的侧信道攻击)
  16. 油田大数据与创新之路的探究
  17. 何佳佳:民生银行基于开源的运维实践
  18. 4070ti和3080性能差多少 rtx4070ti和rtx3080区别对比
  19. Realme K60 Ultra参数配置怎么样?红米Realme K60 Ultra电池容量
  20. C / C++头文件大全

热门文章

  1. 基于Gitolite的Git服务架设
  2. 大数据营销要学会做减法
  3. Linux 最新SO_REUSEPORT特性
  4. 远哥教你MuleESB系列视频教程
  5. 将assembly包添加到自己的maven仓库
  6. 企业创新管理的八大误区
  7. 使用jQuery制作手风琴效果.(转)
  8. 玻璃质感_他的玻璃质感让人佩服的五体投地
  9. python r语言 作图_R语言低级绘图函数-rect
  10. spring 源码 找不到 taskprovider_Spring 源码阅读环境的搭建