Android 通过升级SettingsProvider数据强制覆盖用户的设置项

简介: Android 通过升级SettingsProvider数据强制覆盖用户的设置项【5月更文挑战第7天】

硬件:RK3568

软件:Android 12

需求:设备通过OTA升级,默认打开虚拟键盘

发现编译的img默认是打开虚拟键盘的,但是ota升级包升级的话,虚拟键盘是关闭的。
解决办法,在编译ota升级包时,修改settingprovider里的数据库版本号,并在版本变化时,更新对应的字段(不然会出现别的奇怪bug)

--- a/framework/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/framework/base/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -3513,7 +3513,7 @@ public class SettingsProvider extends ContentProvider {
         }

         private final class UpgradeController {
-            private static final int SETTINGS_VERSION = 192;
+            private static final int SETTINGS_VERSION = 193; //修改版本号

             private final int mUserId;

@@ -4911,6 +4911,25 @@ public class SettingsProvider extends ContentProvider {
                     currentVersion = 192;
                  }
 //需要处理,不然会出现奇奇怪怪的bug 
+                if (currentVersion == 192) {
+                    final SettingsState globalSettings = getGlobalSettingsLocked();
+                    globalSettings.insertSettingOverrideableByRestoreLocked(
+                            Secure.SHOW_IME_WITH_HARD_KEYBOARD,
+                            getContext().getResources().getBoolean(
+                                    R.bool.def_show_ime_with_hard_keyboard) ? "1" : "0",
+                            null, true, SettingsState.SYSTEM_PACKAGE_NAME);
+
+                    globalSettings.insertSettingOverrideableByRestoreLocked(
+                            Global.BLUETOOTH_ON,
+                            getContext().getResources().getBoolean(
+                                    R.bool.def_bluetooth_on) ? "1" : "0",
+                            null, true, SettingsState.SYSTEM_PACKAGE_NAME);
+                    currentVersion = 193;
+                 }
+
                 // vXXX: Add new settings above this point.

                 if (currentVersion != newVersion) {
目录
相关文章
|
10天前
|
XML 存储 JSON
51. 【Android教程】JSON 数据解析
51. 【Android教程】JSON 数据解析
21 2
|
30天前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
30 2
|
30天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
27 0
|
5天前
|
传感器 Android开发 UED
Android统一设置页面竖屏
【6月更文挑战第4天】
|
7天前
|
JSON 编解码 Apache
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
11 1
|
7天前
|
Android开发 UED
|
10天前
|
XML 存储 JavaScript
50. 【Android教程】xml 数据解析
50. 【Android教程】xml 数据解析
9 1
|
20天前
|
XML 搜索推荐 Java
Android TextView的字体设置
【5月更文挑战第13天】
|
28天前
|
Shell Android开发
Android设置语言
Android设置语言
22 1
|
29天前
|
存储 缓存 Android开发
Android系统分区与升级
Android系统分区与升级
40 4