android 获取通讯录[BUG速记]

本文记录了在Android开发中遇到的读取通讯录需求,详细介绍了如何处理Android 6.0及以上版本动态申请权限的问题,包括打开通讯录的代码实现和动态权限申请的常见误区。开发者在尝试打开通讯录时,需要注意SDK版本不同所需权限的差异,并正确处理权限检查和申请流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近开发中有读取手机通讯录的需求,傻的很认真的我,以为可以打开通讯录就代表不用再次动态申请权限,还是太天真,顾记录这次傻的很天真的日常,为了我的日常小鱼干,速记一下。

一.获取通讯录需要权限

1.android SDK>=23[6.0.0]的时候,需要权限,只需要加入即可
<uses-permission android:name="android.permission.READ_CONTACTS"/>
2.android SDK<23【6.0.0】的时候,需要动态申请权限
 <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
3.权限扩展[防止以后写新功能]

group:android.permission-group.CONTACTS(联系人组)
android.permission.WRITE_CONTACTS(写入联系人)
android.permission.GET_ACCOUNTS(查找设备上的帐户)
android.permission.READ_CONTACTS(读取联系人)
android.permission.READ_CALL_LOG(读取通话记录)
android.permission.READ_PHONE_STATE(读取电话状态)
android.permission.CALL_PHONE(拨打电话)
android.permission.WRITE_CALL_LOG(修改通话记录)
android.permission.USE_SIP(SIP视频服务)
android.permission.PROCESS_OUTGOING_CALLS(程序监视,修改或放弃拨出电话)
com.android.voicemail.permission.ADD_VOICEMAIL(允许应用程序添加系统中的语音邮件)

group:android.permission-group.SMS(短信)
android.permission.READ_SMS(读取短信)
android.permission.RECEIVE_WAP_PUSH(接收WAP PUSH信息)
android.permission.RECEIVE_MMS()
android.permission.RECEIVE_SMS(接收短信权限)
android.permission.SEND_SMS(发送短信)
android.permission.READ_CELL_BROADCASTS(获取小区广播)

二.代码实现打开通讯录

因为本人项目是html与原生对接,顾

在通用html对接类中写入

/*
* 打开通讯录
* @param function
*/
@JavascriptInterface
public void openTelePhoneList(String function){
Logs.e(TAG,”openTelePhoneList——>”);
if(activity instanceof WebViewActivity) {
((WebViewActivity) activity).openTelePhoneList(function);
}
}

在WebViewActivity中写入打开通讯录代码

/*
* 打开通讯录
* @param function
*/
public void openTelePhoneList(String function){
if(!isFastDoubleClick()) {
if(!StringUtlis.isEmpty(function)) {
this.telePhoneBack=function;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值