之前在解一个闹钟在静音模式下不响铃的bug的时候,删掉了一行代码
ringerModeAffectedStreams |= (1 << AudioSystem.STREAM_RING)| (1 << AudioSystem.STREAM_NOTIFICATION)| (1 << AudioSystem.STREAM_ALARM)| (1 << AudioSystem.STREAM_SYSTEM);
删掉了其中的
(1 << AudioSystem.STREAM_ALARM)|
这一行代码。之后验证,问题是解决了的。可是在未解决版本上通过OTA升级的方法把这个问题的解决体现出来的时候是没有效果的。
苦苦寻找解决办法数天之后,发现
ringerModeAffectedStreams
这个值的存取是通过读写数据库完成的。即
ringerModeAffectedStreams = Settings.System.getIntForUser(mContentResolver, Settings.System.MODE_RINGER_STREAMS_AFFECTED, ((1 << AudioSystem.STREAM_RING)|(1 << AudioSystem.STREAM_NOTIFICATION)| (1 << AudioSystem.STREAM_SYSTEM)|(1 << AudioSystem.STREAM_SYSTEM_ENFORCED)), UserHandle.USER_CURRENT);
和
Settings.System.putIntForUser(mContentResolver, Settings.System.MODE_RINGER_STREAMS_AFFECTED, ringerModeAffectedStreams, UserHandle.USER_CURRENT);
从而得到启发,
(1 << AudioSystem.STREAM_ALARM)
这一项在之前的版本是通过“或”的方式加进数据库的,而之后删掉这一行,并不能在数据库中把这一项的值去掉,即变成0。
故最终还需要在代码中加入这句
ringerModeAffectedStreams &= ~(1 << AudioSystem.STREAM_ALARM);
通过这种“移位”“与”的方式把相应的为置零。
相关推荐
Android OTA升级流程,获取版本信息,下载完后MD5校验,OTA检测。
展讯system分区大小自适应调整后OTA升级指导
C语言,嵌入式系统ota升级源码,可以适应于linux及其他轻量级os使用。
以下为OTA升级代码。包括打基础包脚本,OTA升级脚本,CPATCH与DPATCH。等源码。
智能网联汽车的OTA升级方案
手机OTA升级以补丁方式的小更新需要流量从几兆到十几兆都有,如果是大的更新的话,则相当于完全刷机,这个要一百多兆,而苹果系统升级流量大不大,所以不管大小升级,一般建议您在WiFi环境下升级,节省流量。...
OTA升级,包含文件下载,
OTA升级时,清空launcher3数据OTA升级时,清空launcher3数据
恒玄OTA升级源码
android_ota_升级包
ESP8266 OTA升级 ESP8266 OTA升级 ESP8266 OTA升级 ESP8266 OTA升级
Tlsr8258-OTA升级工具
自动部署ota升级服务源码.zip
Android-OTA升级流程资料
ESP8266_OTA升级_PHP后台程序 这是自己写的,有关ESP8266_OTA升级的后台程序。是配合我博客写的ESP8266 OTA 无线升级的资源。
安卓11自定义 OTA AB升级接口
文档的内容是我总结的关于Android OTA升级包制作, Android Recovery模式和升级过程的一些知识. 其中参考了 http://blog.csdn.net/mu0206mu和 http://blog.csdn.net/zclongembedded/article/category/1314238 博客上...
解决android7.1 ota差分升级没有install-recovery.sh的方法 这是个patch, 解决了升级时提示没有install-recovery.sh的报错的问题 为不浪费你的分数, 请确定你是android7和高通平台才可以.
最近在搞 Android A/B 分区 OTA 升级,开始以为挺简单的一个事,没想到折腾了几天,还好终于搞定!代码调用其实就那么点,但是参数以及权限之类很关键,搬砖过来走不通,我就是卡了2天,一些莫名的错误,没法定位。...
这只是http本地空中升级,能让刚接触OTA升级的了解流程,熟悉了http,再去看https就很容易了