You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用putInt写入安卓系统设置触发IllegalArgumentException报错求解

错误根因

你遇到的java.lang.IllegalArgumentException: You cannot keep your settings in the secure settings报错,核心原因如下:

  • 你尝试用putInt写入的android.settings.CAMERA_COVER_STATUS、android.settings.MIC_SWITCH_STATUS属于Android系统私有保留的设置表字段,第三方应用默认没有写入权限
  • 从Android 6.0开始,系统禁止普通第三方应用向Settings.System、Settings.Secure表写入非官方公开的自定义字段,也不允许修改私有系统保留字段,触发限制就会抛出该异常。

对应解决方案

  • 如果你是ROM开发/持有系统签名:给应用申明android.permission.WRITE_SECURE_SETTINGS权限,同时将应用加入system共享UID,即可正常写入该类系统私有字段
  • 如果你是普通第三方应用开发:不要尝试修改系统设置表存储自定义状态,改用SharedPreferences、本地数据库等自有存储方式保存摄像头、麦克风的开关状态;如果需要监听系统侧的摄像头、麦克风启用状态,直接调用官方公开的CameraManager.AvailabilityCallback、AudioManager相关API实现即可
  • 如果你需要控制设备的摄像头、麦克风硬件开关:该能力仅对系统级应用开放,普通第三方应用无法获取对应权限,只有ROOT后的设备可以通过调用隐藏系统API实现该需求。

内容的提问来源于stack exchange,提问作者Naseef Chowdhury

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:15:00