美文网首页
关于安卓权限申请问题

关于安卓权限申请问题

作者: 笑望書 | 来源:发表于2019-08-12 10:12 被阅读0次

目前我想基本上所有的安卓开发都清楚,android 6.0以上的操作系统新增了权限申请的控制,提高了用户安全度,然而在开发中针对权限申请,我们也有需要注意的一些问题点存在,最近开发中就遇到了。

问题一:
即使应用程序关闭了权限,使用ActivityCompat.checkSelfPermission(context,permission),返回的值一直都是已授权。

原因:
因为项目用的targetSDKVersion是22(为了支持硬件设备),首先程序在安装时会默认同意申请的所有权限,后续在设置中手动关闭后,在程序里面加上权限检测的代码,检测到的结果也是已授权的。

解决方法:
针对targetSDKVersion为22或者系统版本为22以下的,我们可以使用supportV4里面提供的检测权限的方法:PermissionChecker.checkSelfPermission(),从而可以得到准确的权限判断。

问题二:
当程序启动后,再去手动修改程序某些权限的开关,回到程序会出现奔溃现象

原因:
当我们去到设置界面修改程序的权限时,此时程序顶层Activity会调用onSaveInstanceState(Bundle outState)的生命周期函数,对当前的界面的一些数据做缓存。当我们修改权限后再回到程序,此时程序会重启当前的Activity,而在onCreate中检测到有缓存,就会根据缓存的数据帮助我们重新渲染界面,初始化数据等。这个时候我们再去做一些需要提前授权的业务时(比如拍照),可能会出现导致程序奔溃的情况。

解决方法:
1、首先重写onSaveInstanceState方法,不调用其父类方法进行保存数据。
2、在onCreate方法中,先判定传入的bundle值是否为空,如果不为空,可以选择重启我们的应用。

相关文章

  • 关于安卓权限申请问题

    目前我想基本上所有的安卓开发都清楚,android 6.0以上的操作系统新增了权限申请的控制,提高了用户安全度,然...

  • 安卓对接u3d时候踩过的坑

    1.安卓对接u3d时,关于权限问题注意,这个鬼东西时不需要做动态权限申请的。为啥我也不清楚,反正只要我做动态申请就...

  • 安卓权限申请操作简单例子

    安卓权限申请操作简单例子 早在Android6.0(API23)的时代,我们使用安卓的sd卡权限、定位权限、拍照权...

  • 安卓权限申请处理框架Android-UsesPermission

    安卓权限申请封装处理框架。测试支持4.0+。项目源于正式处理Android权限问题时,没找到简单、能满足被拒绝权限...

  • 安卓6.0+ 动态权限申请总结

    网上关于安卓动态权限申请的文章很多,但是毕竟眼花缭乱,所以下面我将根据自己的理解和在网上获取到的信息对动态权限申请...

  • 动态权限申请

    安卓的动态权限需要申请,同时也需要在清单文件中注册。

  • 一行代码搞定Android权限申请

    一行代码搞定Android权限申请 前言 github欢迎Star 想到权限处理,安卓中提供权限请求方式就令人头疼...

  • 安卓运行时权限的申请流程

    本文结合代码和图示来展示安卓运行时权限的申请流程: 安卓中,运行时权限的核心就是需要在程序运行的过程当中,去判断用...

  • android 6.0动态获取设备的IMEI号

    现在的安卓手机权限访问,基本上都需要动态申请,否则就会报权限申请异常,网上也有很多优秀的开源项目:比如 RxPer...

  • 安卓动态权限申请 | permissions4m

    谷歌在安卓5.0以后加入了动态权限申请,所以安卓日常开发,需要做高版本的权限适配这一块。今天给大家推荐一款开源的动...

网友评论

      本文标题:关于安卓权限申请问题

      本文链接:https://www.haomeiwen.com/subject/arhyjctx.html