Android6.0的通讯录获取


在Android Studio上实现基于Android6.0的通讯录获取功能


1、新建一个Android项目,API选择23: Android6.0(Marshmallow)

2、在MainActivity的layout中添加一个button用于获取通信录功能

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="获取联系人信息"
        android:id="@+id/btnGetContacts"
        android:layout_below="@+id/textView"
        android:layout_alignParentStart="true"/>

MainActivity的layout

3、为了后续开发的方便和规整,新建一个包Contacts用于存放获取通讯录所需的类。并在包中新建一个Activity:GetContacts。
由于Android6.0对APP运行权限做了较大改变,获取通讯录信息不仅需要静态授权还需要动态申请权限,详情见
Android6.0系统权限那些事
http://www.open-open.com/lib/view/open1450578678148.html

Android 6.0 运行时权限处理完全解析
http://www.w2bc.com/article/101798?from=extend

所以在这里需要给APP添加动态申请权限代码,暂时先将其实现,下一篇博客再考虑封装。新建一个String类型的方法getContacts(Context context),第一步检查是否授权,如果没有授权就申请权限

 if (ContextCompat.checkSelfPermission(context,android.Manifest.permission.READ_CONTACTS)
                                                !=PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions((Activity) context,
                    new String[]{android.Manifest.permission.READ_CONTACTS},
                    1);
        }

这里涉及到的API:

  1. ContextCompat.checkSelfPermission,主要用于检测某个权限是否已经被授予,方法返回值为PackageManager.PERMISSION_DENIED或者PackageManager.PERMISSION_GRANTED。当返回DENIED就需要进行申请授权了。
  2. ActivityCompat.requestPermissions,该方法是异步的,第一个参数是Context;第二个参数是需要申请的权限的字符串数组;第三个参数为requestCode&#x
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值