本文实例为大家分享了Android读取手机通讯录联系人到项目的具体代码,供大家参考,具体内容如下

一、主界面代码如下:

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/contacts_view"

android:layout_width="match_parent"

android:layout_height="match_parent">

简单的添加了一个listview来展示待会读取到的通讯录数据。

二、MainAcitivity代码如下,代码中有详细注释!

public class MainActivity extends AppCompatActivity {

ArrayAdapter adapter;

List contactsList=new ArrayList<>();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//获取到listview并且设置适配器

ListView contactsView= (ListView) findViewById(R.id.contacts_view);

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

contactsView.setAdapter(adapter);

//判断是否开启读取通讯录的权限

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

.PERMISSION_GRANTED){

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

}else {

readContacts();

}

}

private void readContacts() {

Cursor cursor=null;

try {

//查询联系人数据,使用了getContentResolver().query方法来查询系统的联系人的数据

//CONTENT_URI就是一个封装好的Uri,是已经解析过得常量

cursor=getContentResolver().query(

ContactsContract.CommonDataKinds.Phone.CONTENT_URI,

null,

null,

null,

null

);

//对cursor进行遍历,取出姓名和电话号码

if (cursor!=null){

while (cursor.moveToNext()){

//获取联系人姓名

String displayName=cursor.getString(cursor.getColumnIndex(

ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME

));

//获取联系人手机号

String number=cursor.getString(cursor.getColumnIndex(

ContactsContract.CommonDataKinds.Phone.NUMBER

));

//把取出的两类数据进行拼接,中间加换行符,然后添加到listview中

contactsList.add(displayName+"\n"+number);

}

//刷新listview

adapter.notifyDataSetChanged();

}

}catch (Exception e){

e.printStackTrace();

}finally {

//记得关掉cursor

if (cursor!=null){

cursor.close();

}

}

}

@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;

}

}

}

三、由于读取通讯录属于危险权限,所以记得在Manifest中开启权限

好了,下面运行一下,就可以读取出你手机里面的通讯录数据了!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java获取手机通讯录权限_Android读取手机通讯录联系人到自己项目相关推荐

  1. java获取手机通讯录权限_android获取手机通讯录

    1:androidmanifest.xml的内容 package="cn.itcast.contacts" android:versionCode="1" an ...

  2. java 获取手机联系人_Android 读取手机联系人、拨号、发送短信及长按菜单的操作...

    本示例实现了读取手机联系人,拨号.发送短信及长按出现菜单选项的操作↓ 1.Andrid项目结构图↓主要操作图中红色方框内的文件. 2.首先布局代码如下↓ a, main.xml 程序运行的主界面,主要 ...

  3. php 启动手机浏览器,php实现读取手机客户端浏览器的类

    php实现读取手机客户端浏览器的类 /** *   函数名称:   getUA *   函数功能:   取UA *   输入参数:   none *   函数返回值:   成功返回号码,失败返回fal ...

  4. android获取sim卡手机号码,Android 读取SIM卡联系人

    Android 5.0之前的版本中,系统只支持单卡,可以使用URI -- content://icc/adn 读取到sim卡里的联系人.附:IccProvider(4.4.4_r1) 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. java获取环境变量路径_Java读取系统环境变量的方法

    Java读取系统环境变量的方法 时间:2017-08-30     来源:华清远见JAVA学院 本文华清Java学院小编要和大家分享的是Java读取系统环境变量的方法,主要涉及到java读取系统环境变 ...

最新文章

  1. 仿个人税务 app html5_手机里发现这类APP,赶紧删!
  2. day-05 python函数
  3. Linux多进程编程(2)
  4. Android ssl 异常,SSL握手异常,同时通过https连接使用Android中的自签名证书Nougat
  5. mpls 保留标签值_MPLS的前世今生11
  6. 编译OpenJDK12:globalDefinitions_visCPP.hpp(46): fatal error C1083:inttypes.h No such file or directory
  7. Angular 分页
  8. eclipse mysql tomcat,java+eclipse+tomcat+mysql+jdbc
  9. 清除/收缩SQL Server数据库日志
  10. cisco是什么公司(cisco是什么公司新加坡)
  11. 计算机测配色原理,计算机测配色教学方法论文
  12. java机票编程_携程预订机票后台java开发编程
  13. 词云图制作(wordcloud pyecharts)
  14. 邮箱自动化(smtplib模块)--以邮件正文HTML表格形式
  15. Golang处理excel用流式写入,追加行数据
  16. Java开发游戏脚本(第五卷)
  17. 刘德华--1野性的自然
  18. 按键精灵使用脚本编写测试Android入门与实战
  19. 软件评测师(七)信息安全
  20. Ghostscript和Gsview下载安装,matlab图形去白边方法汇总

热门文章

  1. android蓝牙打印机打印图片,如何使用打印机(通过蓝牙打印)从Android设备打印图像和一些数据?...
  2. 网易视频云 php接口
  3. 实验题目:约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数。从第一个人开始顺时针方向自1起顺序报数,报到m时停止并且报m的人出列,再从他的下一个人
  4. [js常用积累] js正则表达式验证手机号和数字验证码
  5. GSMA公布MWC19上海最新进展
  6. Linux使用zip打包文件
  7. Wijmo JavaScript UI 5.20222.877 Crack
  8. 日常学习记录——pycharm+tensorflow简单图像识别
  9. matlab 差分方程的解(解答qq网友)
  10. 企业微信(h5页面嵌入企业微信)的分享总结