当前位置: 首页 > news >正文

踩坑记录:adb修改settings数据库ContentObserver无回调

在Android 14版本开发过程中遇到一个,通过adb修改settings数据库,发现生效但是监听的ContentObserver无回调

以背光亮度值调节为例

adb  shell settings put system screen_brightness 18

调节亮度值到指定值,修改完后查看

adb shell settings get system screen_brightness18

修改完成,生效,但是ContentObserver的onChange(...)无回调

尝试了多种方式,无效。

修改方法如下:

1.首先查看是否有多个用户,以及当前运行的user id

adb shell pm list users  //查看有多少个user idUsers:UserInfo{0:Driver:111} runningUserInfo{10:Driver:222} running

其中0表示当前正在运行的用户的user ID,name是用户名,显示设备有两个user

2.执行adb 命令修改settings数据库要加上指定user

adb shell settings put system screen_brightness 18 --user 0

指定user 0即可,如果不加user 0指定user 0,修改的会是user 10,但是ContentObserver的user.id是0,所以无回调

如何判断是user 0

可以执行如下打印,会发现打印的userId是0

context.getContentResolver().getUserId()

单用户不用

也可以看settings的数据

/data/system/user,会发现下面有0和10两个文件夹,高版本Android settings不再使用db存,而是xml文件


http://www.mrgr.cn/news/31207.html

相关文章:

  • 机器情绪及抑郁症算法
  • SNMP原理与配置
  • RabbitMQ 在 Java 和 Spring Boot 中的应用详解
  • VMware虚拟机安装Windows11保姆级教程(最新步骤+踩坑)
  • netcat工具安装和使用
  • 计算机网络之传输层
  • 基于存内计算架构的模型部署与映射优化
  • 【洛谷】P1313 [NOIP2011 提高组] 计算系数 的题解
  • MySQL —— 索引
  • mysql表逆向实体类
  • 大气网格化精细化监管监测系统
  • API 接口接入前:遵循标准流程与规范的注意事项
  • 云计算课程作业1
  • EC Shop安装指南 [ Apache PHP Mysql ]
  • CSP-J2024全真模拟题 阅读程序题3+程序填空题
  • OJ 旋转图像
  • postgresql gcc编译选项解释
  • Java集成gdal 处理解析tiff和shp数据
  • 大模型的实践应用30-大模型训练和推理中分布式核心技术的应用
  • iftop流量监控工具
  • 鸿蒙OpenHarmony【轻量系统内核通信机制(消息队列)】子系统开发
  • 红日药业携手实在智能,构建RPA数字员工平台满足业务一体化需求 | 实在RPA案例
  • cmake--set_target_properties
  • 20240921 每日AI必读资讯
  • 基于Java的房地产在线营销管理系统研究与实现
  • 浅谈死锁以及判断死锁的方法