android bu,Android请求权限之不再询问或禁止不再提示

 2023-09-15 阅读 19 评论 0

摘要:在应用申请权限时,如果用户选择了禁止后不再提示(不再询问),那么未来再次向用户请求该权限时,系统将会默认禁止该权限。这时候只能靠用户手动去授予权限,通过设计一个提示选择框来让用户选择,如果用户的确是想要授予该权限,那么就跳

在应用申请权限时,如果用户选择了禁止后不再提示(不再询问),那么未来再次向用户请求该权限时,系统将会默认禁止该权限。

5f0e3eff08a90bc0c0d7f82bf51acf4f.png

这时候只能靠用户手动去授予权限,通过设计一个提示选择框来让用户选择,如果用户的确是想要授予该权限,那么就跳转至该应用的权限设置界面。

1、判断该权限是否处于禁止后不再提示(不再询问)

android权限限制怎么办?2、提醒用户我们需要该权限,是否前往设置

3、跳转当前应用的权限设置页面

1、检查权限状态

使用 ContextCompat.checkSelfPermission() 方法来检查权限的授予状态。它将返回一个常量值,这个在 上篇文章 中有提到过。然后再使用 ActivityCompat.shouldShowRequestPermissionRationale() 方法判断该权限是否能够弹出带有请求权限的弹窗,这个是判断权限是否处于不再询问状态的重要方法。

权限询问是什么意思、根据上面两个方法,结合其逻辑则需要 checkSelfPermission() 方法返回“权限未被授予的状态常量”,同时 shouldShowRequestPermissionRationale() 方法判断该权限为“无法弹出权限申请框”,也就是返回布尔值 false。

同时满足上面这两个条件就表示该权限处于不再询问的状态。判断权限是否处于不再询问状态的代码有点小BUG,它必须申请过一次权限并且用户做出了选择之后判断才能够准确。

cc57a9bb77c8e4f982246a653c1de8a5.png

2、创建 AlertDialog 对话框

使用 AlertDialog.Builder 构造器来创建一个对话框对象,然后再使用 setTitle、setMessage 等方法构造对话框的标题及信息等。

1f728f69ccfce1153e9aa086f8983428.png

手机应用权限中的询问啥意思。3、跳转权限设置页面

使用 Intent 和 startActivity() 等方法跳转到当前应用的详情页面进行权限设置。

099150b8ef54f39086c35fb89e6cbaa1.png

或者你也可以根据包名和类名来打开指定机型的权限管理界面的 Activity,不同的机型打开权限管理界面的方法都不同,所以你需要一个一个去适配其包名和类名。可以通过 ADB 命令来获取不同手机机型里权限界面的包名和类名(具体方法这里就不介绍了)。

57440bee2889495960fc21035d1a0c73.png

4、完整代码示例

无法访问android sdk加载项列表,【代码文件】activity_main.xml

e8dc3ffd394c1605f950263442cc5f37.png

【代码文件】AndroidManifest.xml

fbd2b8e537da745a10eb838be997f5a6.png

【代码文件】MainActivity.java

8de593128d3e75e39a388eb5ae170fe3.png

// ContextCompat.checkSelfPermission(Activity, permission);// ActivityCompat.shouldShowRequestPermissionRationale(Activity, permission);// 特别注意:判断权限是否处于不再询问状态的代码有点小BUG,它必须申请过一次权限并且用户做出了选择之后判断才能够准

安卓权限每次询问,如果文章中含有某些错误或其它问题,欢迎在下方评论留言,我会及时修改。

举报/反馈

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/60136.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息