Android打开APP会有权限询问

阅读: 评论:0

Android打开APP会有权限询问

Android打开APP会有权限询问

Android打开APP会有权限询问,比如打开摄像头权限,如图

只要你在l中配置了修改权限,那么就会自动询问权限,如下代码:

<uses-permission android:name="android.permission.CAMERA" />

HTML

但是!!!!!!!!!!!!!很多时候不进行自动询问,怎么办?首先

Android为什么不自动询问权限?

经过测试发现,Android 6.0以后的系统都不会进行权限询问,要分为两种情况:

情况1:直接安装apk文件不进行询问。

这种情况,其实是已经询问了APP权限的了,就是在你安装APK的时候询问的,Android 6.0以后的系统在打开apk文件安装的时候会显示apk需要的权限列表,这时候权限默认是禁止的,如果你不修改就直接安装,那么启动APP后是不会询问权限的。

情况2:手机应用商店安装APP。

这种情况,手机系统会认为没有询问过你权限,所以APP运行起来会询问l中配置了的权限。

Android主动进行权限申请询问

不管是哪种情况,你自己使用代码来检查权限和申请权限就会非常稳妥。

检查是否开启权限代码

ContextCompat.checkSelfPermission(LiveauthorActivity.this, android.Manifest.permission.CAMERA)

Java

此方法会返回一个int类型,一般是0和-1两个值。

对应PackageManager.PERMISSION_DENIED 和 PackageManager.PERMISSION_GRANTED

PackageManager.PERMISSION_DENIED  -1 表示没有获得对应权限

PackageManager.PERMISSION_GRANTED 0 表示已经获得权限

所以,代码改良为

if (ContextCompat.checkSelfPermission(LiveauthorActivity.this, 
android.Manifest.permission.CAMERA)== 
PackageManager.PERMISSION_DENIED){//判断为没有权限,换起权限申请询问questPermissions(LiveauthorActivity.this, new String[]{android.Manifest.permission.CAMERA},1);
}else {//判断已经获取权限后的操作
}

Java

 

其中主动申请权限询问的代码为

Java

 

注意:上方LiveauthorActivity为当前Activity类

Android权限询问后的回调

权限是否获取成功,有一个回调,在当前Activity中重写方法onRequestPermissionsResult()

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode){case 1://此处判断grantResults数组的长度,如果和你申请的权限个数一致,那么申请权限成功,然后做对应操作break;}
}

Java

requestCode:对应申请权限时的第三个参数

permissions:申请的权限列表

grantResults:申请权限成功个数

本文发布于:2024-01-31 11:30:47,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170667184828201.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:会有   权限   Android   APP
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23