初学Android studio 需要做一个功能,获取联系人信息、并将联系人的名字,号码输出到显示屏上。

使用Android studio版本:3.2  JDK版本: jdk1.8.0_151

首先在清单文件添加权限,获取联系人读写权限

<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>

然后是编写布局文件

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><ListViewandroid:id="@+id/list_view"android:layout_width="match_parent"android:layout_height="match_parent"></ListView></android.support.constraint.ConstraintLayout>

JAVA代码

/*** @author SmallLetters*/
public class MainActivity extends AppCompatActivity {private             ListView             mlist_view;private             ArrayAdapter<String> mAdapter;private             List<String>         mContatcList     = new ArrayList<>();public static final int                  REQ_CODE_CONTACT = 1;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initAdapter();checkContactPermission();}/*** 检查申请联系人权限*/private void checkContactPermission() {if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS)!= PackageManager.PERMISSION_GRANTED) {//未获取到读取联系人权限//向系统申请权限ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_CONTACTS}, REQ_CODE_CONTACT);} else {query();}}private void query() {ContentResolver contentResolver = this.getContentResolver();Cursor cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null, null, null, null);Log.d("SmallLetters", ContactsContract.CommonDataKinds.Phone.CONTENT_URI.toString());if (cursor != null) {while (cursor.moveToNext()) {String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));mContatcList.add("name" + name + "number" + number);}//更新数据mAdapter.notifyDataSetChanged();cursor.close();}}private void initAdapter() {mAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mContatcList);mlist_view.setAdapter(mAdapter);}private void initView() {//获取list控件mlist_view = findViewById(R.id.list_view);}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {//判断用户是否,同意 获取联系人授权if (requestCode == REQ_CODE_CONTACT && grantResults.length > 0&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {//获取到读取联系人权限query();} else {Toast.makeText(this, "未获取到联系人权限", Toast.LENGTH_SHORT).show();}}
}

Android studio 获取手机联系人和号码并输出相关推荐

  1. Android Studio 获取手机联系人并进行,发短信,打电话,增删改操作

    1.总体设计 我的整体功能设计相对简单.一个主要的联系人显示界面,使用ListView将得到联系人数据进行显示,通过点击,长按联系人事件触发相应的弹窗(Dailog)然后选择想要的功能.通过点击加号图 ...

  2. android5.1本机号码,Android获取手机本机号码的实现方法

    Android获取手机本机号码的实现方法 反射TelephoneManager 获取本机号码,注意一下提供的接口有的SIM卡没写是获取不到的,该接口只适配Android5.0以上版本 public S ...

  3. android添加sdk版本号,Android编程获取手机型号、sdk版本及firmware版本号

    Android开发平台中,可通过TelephonyManager 获取本机号码. TelephonyManager phoneMgr=(TelephonyManager)this.getSystemS ...

  4. Android中获取手机中的联系人信息

    #Android中获取手机中的联系人信息 1.0.查看系统通讯录的表,表路径:data->data->com.android.providers.contacts->database ...

  5. android工程怎么连手机,android studio与手机连接调试步骤详解

    android studio 版本不同连接手机方式有细微的不同,主要方式相似.介绍主要分手机和电脑两部分介绍. 一.手机部分 1.手机端下载一个"一键root权限获取",在安装的过 ...

  6. android 自动获取手机验证码

    真的很奇怪大家的复制粘贴功能,一篇自动获取手机验证码的文章各大平台争相转发,我以为很牛逼,到后来发现不能用,可能我技术不够吧,复制粘贴还不到家. android 自动获取手机验证码好处 :① 用户不用 ...

  7. 错误 程序包android.app不存在,运行.app时Android Studio获取包名称错误

    运行.app时Android Studio获取包名称错误 我将程序包名称从com.mycompany.myapplication更改为com.mycompany.testapp. 一切都构建良好,但是 ...

  8. Android杂谈---获取手机屏幕大小

    Android杂谈---获取手机屏幕大小 SurfaceView简单例子 玩转Android---UI篇---ZoomControls放大缩小图片 更多相关推荐 这里总结下android中关于手机屏幕 ...

  9. 【Android Studio安装部署系列】十一、Android studio获取数字签名信息

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 下面介绍下调试版本和发布版本获取数字签名的方法,通过以下方法可以获取到SHA1和MD5. 一般在使用分享功能,在第三方平台中创建应用 ...

最新文章

  1. IIS异常:CS0016: 未能写入输出文件“c:\WINDOWS\Microsoft.NET\Framework\.。。”--“拒绝访问...
  2. cassandra 存储list数组
  3. 河南工程学院计算机科学与技术在哪个校区,河南工学院新生在哪个校区_有几个校区及地址介绍...
  4. AlarmManager类的应用(实现闹钟功能)
  5. FFmpeg中MPEG-4编码程序追踪,其他FFMPEG自带编码器同理
  6. 分布式云+dubbo+zookeeper+Springmvc整合
  7. leetcode1299. 将每个元素替换为右侧最大元素
  8. freetype字体位图转距离场_那些火遍ins的字体小技巧,不看你就亏了
  9. CS224d lecture 7札记
  10. MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解...
  11. CAD建模软件BricsCAD 22.2.03 for Mac
  12. ASP.NET OAuth:解决refresh token无法刷新access token的问题
  13. l298n使能端跳线帽_L298N 驱动模块的应用
  14. 统计学习方法——统计学习基础(一)
  15. CS1.5制造机器人的命令
  16. 运放输入偏置电流方向_【转】运放输入偏置电流
  17. 30个Eclipse键盘快捷键大全,让你工作效率翻倍
  18. C语言 两种方法优化:输入一个日期的年、月、日,计算并输出这天是该年的第几天。
  19. oracle改密码sql语句,Oracle 修改数据库密码
  20. 全面正面解读:nmn的副作用和危害怎么样?nmn副作用及应对方法?

热门文章

  1. 摘至博客园江峰----关于前端的小技巧
  2. 成功入选“实力竞争者”,腾讯云数据库再获国际权威机构认可
  3. 记录一下2020年自己设计毕设的笔记
  4. 项目经理如何提升团队执行力?
  5. 8个好用到爆的在线工具,免费又实用,千万别错过
  6. 2020电工(初级)实操考试视频及电工(初级)操作证考试
  7. python 批处理压缩图片
  8. python 压缩文件夹_python3 压缩文件及文件夹
  9. 【转载】在IDEA 中使用 mvn install 添加本地 jar包依赖
  10. Unity 项目加密插件Obfuscator