android 6.0以后动态申请多个危险权限笔记

来源:互联网 发布:数据挖掘软件 编辑:程序博客网 时间:2024/06/07 02:07

6.0以后不仅在xml声明权限,还需要在运行代码中动态去声明。

1、权限分为普通权限和危险权限。如下是普通权限,不必动态声明。

1、ACCESS_LOCATION_EXTRA_COMMANDS

2、ACCESS_NETWORK_STATE

3、ACCESS_NOTIFICATION_POLICY

4、ACCESS_WIFI_STATEBLUETOOTH

5、BLUETOOTH_ADMIN

6、BROADCAST_STICKY

7、INTERNET
.
.
.
危险权限如下(可能不完整),需要动态申请
危险权限和权限组列表

2.下面是如何一次申请多个权限,代码如下

先声明一个保存多个权限的数组
//1、声明一个数据保存需要声明的权限List<String> permissionList = new ArrayList<>();
 if (ContextCompat.checkSelfPermission(PersonCenter.this, Manifest.permission.WRITE_EXTERNAL_STORAGE                ) != PackageManager.PERMISSION_GRANTED) {                    permissionList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);                   /* ActivityCompat.requestPermissions(PersonCenter.this,                            new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);*/                }                if (ContextCompat.checkSelfPermission(PersonCenter.this, Manifest.permission.CAMERA) !=                        PackageManager.PERMISSION_GRANTED) {                    permissionList.add(Manifest.permission.CAMERA);                }                if (!permissionList.isEmpty()) {                    String[] permissions = permissionList.toArray(new String[permissionList.size()]);                    ActivityCompat.requestPermissions(PersonCenter.this,                            permissions, 1);                } else {                   //执行需要权限的任务,一般封装成一个方法                }

//权限回调
 @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        super.onRequestPermissionsResult(requestCode, permissions, grantResults);        switch (requestCode) {            case 1:                if (grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults.length >= 0) {                    //getimg();                } else {                    Toast.makeText(getApplicationContext(), "你拒绝了读取SD的权限", Toast.LENGTH_SHORT).show();                }                break;        }    }

本文纯个人学习笔记,如有错误之处敬请留意纠正。跪谢。