android 6.0以後動態申請多個危險權限筆記

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;
        }
    }

本文純個人學習筆記,如有錯誤之處敬請留意糾正。跪謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章