当前课程知识点:Android应用开发基础 > 第七章 内容提供者ContentProvider > 7.4 访问通讯录 > 7.4.1 实践案例-读取通讯录
本节通过实例来介绍如何使用联系人权限读取手机通讯录
下面介绍读取联系人权限申请实例
首先创建一个应用程序
设置应用程序的名字
进入布局文件
删除默认组件
修改布局类型为线性布局
Linearl.Layout
切换到design模式
线性布局的排列方式vertical
新建一个水平方向的线性布局
新建一个Button组件
设置layout_width为0dp
layout_height为match_parent
layout_weight为1
将水平方向的线性布局layout_height
设置为0dp,layout_weight为1
设置button的文本为读取联系人
设置id为btn_read_contact
复制三个button
更改第二个按钮id为btn_write_contact
文本内容为写入联系人
更改第三个按钮文本内容为删除联系人
id为btn_delete_contact
更改第四个按钮id为btn_change_contact
文本内容为更改联系人
新建ListView组件
设置layout_height为0dp,layout_weight为6
id为lv_contact
把上个项目定义的两个变量拷贝过来
选中activity_main布局文件
点击右键选择Generate,选中LayoutCreator
自动生成组件初始化的代码
在onCreate方法中新建initData()方法
在initData中初始化适配器
为mLvContact设置适配器
实现onClick方法
当点击id为btn_read_contact调用read方法
alt+enter实现未实现方法
在AndroidManifest.xml中
添加读取联系人,写入联系人的权限
在read方法中,用if语句检查所需权限是否授权
else语句中,授权后调用readContact方法
alt+enter实现未实现方法
将上个项目的read()
拷贝到readContact()中
进行查询时先清除mDataList的缓存
给这些查询语句加个trycatch捕获机制
catch中事件e去抛出异常
finally,事件执行完后
把cursor定义到trycatch外面
如果cursor不为空
关闭cursor
实现回调函数onRequestPermissions()
使用switchcase语句
requestCode做参数
如果requestCode等于1
如果权限已授权 ,调用readContact方法
如果权限没有授权,使用Toast提示
You denied the permissions
break程序执行完毕
default情况下程序执行完毕
代码编写完成后运行程序
点击读取联系人按钮,allow允许权限申请
实现了联系人的读取
这就是使用Android应用权限读取手机通讯录的全部内容
请大家按照讲课的内容完成手机通讯录应用程序的编写
在Android的手机和模拟器中分别运行
通过实例理解使用Android的运行权限读取手机通讯录的流程
-Android Studio4.1.2安装常用问题汇总2021.3.15
-1.1 Android概述
--1.1 Android Studio安装与配置-实践案例
-1.1 Android概述--作业
-1.2 Android程序
-1.2 Android程序--作业
-1.3 Android程序调试
-1.3 Android程序调试--作业
-2.1 Activity概述
-2.1 Activity概述--作业
-2.2 Activity应用
-第2章 Android视图--2.2 Activity应用
-3.1 Activity布局
-3.1 Activity布局--作业
-3.2 Android基础组件
-3.2 Android基础组件--作业
-3.3 Android中级组件
-3.3 Android中级组件--作业
-3.4 Android适配器
-3.4 Android适配器--作业
-4.1 Fragment碎片组件
-4.1 Fragment碎片组件--作业
-4.2 ViewPager翻页类组件
-4.2 ViewPager翻页类组件--作业
-讨论:fragment与activity的生命周期有哪些不同?
-5.1 Android广播概述
-5.1 Android广播概述--作业
-5.2 Android广播工作原理
-5.2 Android广播工作原理--作业
-5.3 自定义广播
-第5章 广播--5.3 自定义广播
-5.4 有序广播
--5.4有序广播
-第5章 广播--5.4 有序广播
-6.1 系统服务概述
-6.1 系统服务概述--作业
-6.2 访问系统服务
-6.2 访问系统服务--作业
-6.3 自定义服务
-第6章 Android服务--6.3 自定义服务
-6.4 多线程
--6.4 多线程
-第6章 Android服务--6.4 多线程
-7.1 Android运行权限
-7.1 Android运行权限--作业
-7.2 URL URI概述
-第7章 内容提供者ContentProvider--7.2 URL URI概述
-7.3 ContentProvider概述
-第7章 内容提供者ContentProvider--7.3 ContentProvider概述
-7.4 访问通讯录
-第7章 内容提供者ContentProvider--7.4 访问通讯录
-7.5 课后作业案例
-8.1 相机服务
--8.1 相机服务
-8.1 相机服务--作业
-8.2 音视频服务
-8.2 音视频服务--作业
-9.1 网络服务概述
-9.1 网络服务概述--作业
-9.2 网络框架
--9.2 网络框架
-9.2 网络框架--作业
-9.3 Json
--9.3 Json
-第9章 网络技术--9.3 Json
-9.4 Volley
-第9章 网络技术--9.4 Volley
-10.1 文件存储
--10.1.3 实践案例-SharedPreference文件读写
-10.1 文件存储--作业
-10.2 数据库存储
-10.2 数据库存储--作业
-第1章 实训简介以及开发环境配置
-第2章 在线音乐播放器整体设计以及服务端开发
-第3章 在线音乐播放器-客户端开发
-第4章 在线音乐播放器-完整版
-第5章 QQ聊天项目
-第6章 在线点餐系统