java - 无法修改小米 Miui 设备中的系统设置
问题描述
在我的应用程序中,即使在用户允许修改系统设置(write_settings)权限之后,实际的权限也没有授予我的应用程序。
用户允许允许修改设置:
但是,当我进入设置>已安装的应用程序>我的应用程序>其他权限以检查授予的权限时,修改我的应用程序的系统设置权限被拒绝。
我在清单文件中添加了写入设置权限
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
我还使用代码打开设置意图
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M){
boolean settingsCanWrite = Settings.System.canWrite(getContext());
if(!settingsCanWrite){
showWriteSettingsDialog();
}
}
private void showWriteSettingsDialog(){
final Dialog dialog = new Dialog(getContext());
LottieAnimationView animation_view = dialog.findViewById(R.id.animation_view);
dialog.setContentView(R.layout.write_settings_dialog);
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
button = dialog.findViewById(R.id.write_settings_button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + getContext().getPackageName()));
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivityForResult(intent,CODE_WRITE_SETTINGS_PERMISSION);
}
});
dialog.show();
}
它适用于我测试过的其他设备,但不适用于小米的 MIUI 设备。如果可能,请为我提供解决方法。我迫切需要此权限,因为我的应用程序想要更改铃声。此链接中的答案(无法获得已实现的 WRITE_SETTINGS 权限,但不适用于小米设备
解决方案
推荐阅读
- github - Github Actions: [remote denied] master -> master (shallow update not allowed), error: failed to push some refs
- python - Python3,修复 JSON 缺少双引号问题
- python - 是否必须在项目(工作区)文件夹中启动 VS Code?
- java - spring mvc没有xml配置404错误
- azure-devops - YAMEL 文件中的问题
- mysql - 需要使用sql查询根据表1中的Occurrence结果推导出表2中的出现次数
- powershell - 如何使用 Powershell 修改 Firefox config (pref.js) 行
- spring - 在 ClientConnectionFactory 连接建立/接受时触发操作
- delphi - 在 Lazarus/Delphi 中添加新行或新列后,是否可以立即更改 StringGrid 单元格中的文本?
- android - 如何将数据从 ViewPagerAdapter 传递到不同的活动