欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > 踩坑记录:adb修改settings数据库ContentObserver无回调

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

2024/10/25 3:27:17 来源:https://blog.csdn.net/dzy_mails/article/details/142395259  浏览:    关键词:踩坑记录: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文件

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com