Android6.0系统危险权限

2017-04-13  本文已影响0人  QM

危险权限

GroupPermissionsandroid.permission-group.CALENDAR(日历)

android.permission-group.CAMERA(相机)

android.permission-group.CONTACTS(联系人)

android.permission-group.LOCATION(定位)

android.permission-group.MICROPHONE(麦克风)

android.permission-group.PHONE(电话)

android.permission-group.SENSORS(传感器)

android.permission-group.SMS(短信)

android.permission-group.STORAGE(存储)

代码

 private void checkPermission(String permission) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this,
                    permission);
            //判断是否有权限
            if (permissionCheck != PackageManager.PERMISSION_GRANTED) {

//                if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this,
//                        permission)) {
//                    //前一次一倍拒绝,再次调起向用户额外解释权限的情况
//                    Toast.makeText(this,"shouldShowRequestPermissionRationale",Toast.LENGTH_LONG).show();
//                } else {
                    Toast.makeText(this,"没有权限,请求权限",Toast.LENGTH_LONG).show();
                    ActivityCompat.requestPermissions(MainActivity.this,
                            new String[]{permission},
                            PERMISSIONS_REQUEST);
//                }
            }else {
                Toast.makeText(this,"已有权限",Toast.LENGTH_LONG).show();
            }
        }else{
            Toast.makeText(this,"不是6.0系统",Toast.LENGTH_LONG).show();
        }
    }

    @Override
    public void onRequestPermissionsResult(int requestCode,
                                           String permissions[], int[] grantResults) {
        switch (requestCode) {
            case PERMISSIONS_REQUEST: {
                if (grantResults.length > 0
                        && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

                    Toast.makeText(this,"允许权限",Toast.LENGTH_LONG).show();

                } else {
                    showAppSettingsDialog();
                }
                return;
            }
        }
    }

    /**
     * 显示提示信息
     *
     */
    private void showAppSettingsDialog() {

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("权限提示");
        builder.setMessage("当前应用缺少必要权限。请点击\"设置\"-\"权限\"-打开所需权限。");

        // 拒绝, 退出应用
        builder.setNegativeButton("取消",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });

        builder.setPositiveButton("设置",
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        startAppSettings();
                    }
                });

        builder.setCancelable(false);

        builder.show();
    }

    /**
     *  启动应用的设置
     *
     * @since 2.5.0
     *
     */
    private void startAppSettings() {
        Intent intent = new Intent(
                Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
        intent.setData(Uri.parse("package:" + getPackageName()));
        startActivity(intent);
    }

上一篇 下一篇

猜你喜欢

热点阅读