WRITE_SETTINGS权限问题

当你的应用需要WRITE_SETTINGS权限时

首先去你的AndroidManifest.xml添加权限

    

然后请注意,不要使用checkSelfPermissions检测WRITE_SETTINGS权限,因为它只会返回false不管你是否已经授权

我们需要另外写检测WRITE_SETTINGS权限的方法

//Settings.System.canWrite(MainActivity.this)检测是否拥有写入系统权限的权限
if (!Settings.System.canWrite(MainActivity.this)) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(this);
                    builder.setTitle(R.string.notifyTitle);
                    builder.setMessage("我们的应用需要您授权\"修改系统设置\"的权限,请点击\"设置\"确认开启");

                    // 拒绝, 退出应用
                    builder.setNegativeButton(R.string.cancel,
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    finish();
                                }
                            });

                    builder.setPositiveButton(R.string.setting,
                            new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS,
                                            Uri.parse("package:" + getPackageName()));
                                    startActivityForResult(intent, ForWrittingSetting);
                                }
                            });

                    builder.setCancelable(false);

                    builder.show();
                }

你可能感兴趣的:(WRITE_SETTINGS权限问题)