Android 6.0權限授予

在android 6.0以及sdk23以上,權限就被分爲normal和dangeroushtml

Dangerous Permision:java

Permission Group Permissions
CALENDAR
CAMERA
CONTACTS
LOCATION
MICROPHONE
PHONE
SENSORS
SMS
STORAGE
危險權限設置:
int hasPermision = checkSelfPermission(Manifest.permission.CAMERA);
            if (hasPermision != PackageManager.PERMISSION_GRANTED) {
                if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
                    
                    AlertDialog dialog = new AlertDialog.Builder(this)
                            .setMessage("該相冊須要賦予訪問存儲的權限,不開啓將沒法正常工做, 是否受權?")
                            .setPositiveButton("肯定", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.dismiss();
                                    ActivityCompat.requestPermissions(MainActivity.this,
                                            new String[]{Manifest.permission.CAMERA},
                                            PERMISION_ID);
                                }
                            })
                            .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    dialog.dismiss();
                                    System.exit(0);
                                }
                            }).create();
                    dialog.show();
                } else {
                    
                    ActivityCompat.requestPermissions(this,
                            new String[]{Manifest.permission.CAMERA},
                            PERMISION_ID);
                }
checkSelfPermission(Manifest.permission.CAMERA):判斷權限是否被授予
ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA):判斷權限授予是否被拒絕,若是第一次權限授予的時候用戶拒絕授予權限,再次運行這段代碼時返回ture

 

處理權限申請回調:android

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == PERMISION_ID) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                //權限授予成功
            } else {
                //權限授予失敗
            }
        }
    }

ps:若是權限在AndroidManifest中沒有申請過,是不會有權限授予彈出框出來的ide

相關文章
相關標籤/搜索