android注册流程,android 权限申请流程

危险权限

权限组

权限

CALENDAR(读写日历)

1.READ_CALENDAR 2.WRITE_CALENDAR

CAMERA(相机权限)

CAMERA

CONTACTS(读写联系人权限)

1.READ_CONTACTS 2.WRITE_CONTACTS 3.GET_ACCOUNTS

LOCATION(定位权限)

1.ACCESS_FINE_LOCATION 2.ACCESS_COARSE_LOCATION

MICROPHONE

RECORD_AUDIO

PHONE

1.READ_PHONE_STATE 2.CALL_PHONE 3.READ_CALL_LOG 4.WRITE_CALL_LOG 5.ADD_VOICEMAIL 6.USE_SIP 7.PROCESS_OUTGOING_CALLS

SENSORS

BODY_SENSORS

SMS

1.SEND_SMS 2.RECEIVE_SMS 3.READ_SMS 4.RECEIVE_WAP_PUSH 5.RECEIVE_MMS

STORAGE

1. READ_EXTERNAL_STORAGE 2.WRITE_EXTERNAL_STORAGE

权限申请

android 6.0以后要动态生成权限 权限通过一个,同组权限默认全部通过,例如申请了read_external_storage,权限通过,则同时拥有write权限.但是8.0以后则同组权限不会认定为通过.需要手动申请,这时系统会自动批准通过.

面对此种情况,我们可以申请全部全线

申请权限流程

首次安装

判断权限是否开启

有, 执行正常主流程

没有, 请求权限(系统弹出权限对话框)

(1)同意: 执行正常主流程

(2)不同意:必要权限(app中需要,没有代码执行不了)可自定义弹框提示,点击确定去设置页面开启,如果不是必要权限不处理,执行正常主流程

(3)不同意+不在提示:必要权限可弹出弹框提示,点击确定去设置页面开启,如果不是必要权限不处理--执行正常主流程

再次打开app 或者再次需要此权限时

对(1)(2)处理如上,但是(3)需要特殊处理

当选择“不在提示+拒绝” 请求权限系统不会再次弹出对话框

在第一次选择“不在提示+拒绝”设置标记 noNote = true;

第二次,如果 noNote = true,自定义弹框提示,点击确定去设置页面开启

一般首页只做权限申请,不强制用户必须选择

当某个页面需要特殊权限,在强制提醒用户开启权限

不同的手机权限设置页面打开方式不同,需要适配

是否显示请求权限弹窗

@Override

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {

super.onRequestPermissionsResult(requestCode, permissions, grantResults);

if(grantResults != null){

for(int i = 0;i

if(PackageManager.PERMISSION_DENIED == grantResults[i]){

// 未申请时(默认) = false

// 同意 = false

// 申请拒绝+不在询问(认为用户不在需要此权限) = false

//申请拒绝 = ture

//下面就是拒绝+不在提示 = false

if(!ActivityCompat.shouldShowRequestPermissionRationale(this, permissions[i])){

Toast.makeText(this,"权限拒绝,不在询问",Toast.LENGTH_SHORT).show();

}

}

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值