在上一篇我们了解了ContentProvider的基本使用后,这一篇我们就来小小的实验一下,通过ContentProvider来实现我们读取手机通讯录的简单功能。
第一步:声明权限
因为在Android 6.0之后,Android就对权限这一块做了修改,凡是涉及到危险的地方,都必须由用户手动赋予权限才能做相对应的操作,否则的话就会报错。申请权限并不复杂,首先在清单文件里面加入我们想要申请的权限。如下
<uses-permission android:name="android.permission.READ_CONTACTS" />
接着代码判断该权限是否得到用户授权,如果没有授权的话,则弹出对话框提示用户授予;如果已经得到这个权限的话,则直接读取手机上面的联系人信息
fun readInfo(view: View) {
if (ContextCompat.checkSelfPermission(
this,
Manifest.permission.READ_CONTACTS
) != PackageManager.PERMISSION_GRANTED
) {
ActivityCompat.requestPermissions(
this,
arrayOf(Manifest.permission.READ_CONTACTS),
request