logo头像

求知若渴,虚心若愚

动态使用Android权限

今天给大家介绍一下Android开发中的动态使用Android权限方法

1. 使用Android权限

1.1 为什么要使用权限

Android的权限非常多。我们在开发软件的时候,也需要声明相应的权限,比如希望软件能发短信,需要声明软件调用短信的权限,否则软件运行的时候就会报错。

1.2 Manifest权限声明方式

  • Android的权限在AndroidManifest.xml文件里配置。
  • AndroidManifest文件中有四个标签与permission有关,它们分别是 permission、 permission-group 、permission-tree 和 uses-permission。
  • 最常用的是 uses-permission,当我们需要获取某个权限的时候就必须在我们的manifest文件中声明uses-permission。

2 动态权限请求

2.1 为什么要动态请求权限

动态权限请求时,会弹出一个系统提示的窗口。

动态请求手机权限,在Android6.0以上的手机才有,低版本的手机是不用设置,低版本的手机只要在程序中

AndroidManifest中设置一下就可以获得权限了,

但是高版本手机必须要用户动态同意后,程序才能获得对应的权限。

2.2 示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//6.0才用动态权限
if (Build.VERSION.SDK_INT >= 23) {
//Manifest.permission.CAMERA
//如果用户并没有同意该权限
if (checkSelfPermission(Manifest.permission.CAMERA) != PERMISSION_GRANTED) {
//申请权限

requestPermissions(new String[]{Manifest.permission.CAMERA}, 100);
} else {

open(holder);

} else {//低版本手机,直接打开相机
open(holder);
}



//请求权限后的回调方法
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
//如果用户同意了我的权限
if (requestCode == 100 && grantResults[0] == PERMISSION_GRANTED) {

open(holder);//打开照相机
}

//否则什么都不做
}

注意:这里还是要在AndroidManifest中写入照相机的请求权限,才能够对高低版本的手机都兼容:

支付宝打赏 微信打赏

赞赏是对我们的肯定!