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) {
目录
相关文章
|
23天前
|
XML 存储 JSON
51. 【Android教程】JSON 数据解析
51. 【Android教程】JSON 数据解析
29 2
|
1月前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
34 2
|
17天前
|
传感器 Android开发 UED
Android统一设置页面竖屏
【6月更文挑战第4天】
|
19天前
|
Android开发 UED
|
19天前
|
JSON 编解码 Apache
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
15 1
|
23天前
|
XML 存储 JavaScript
50. 【Android教程】xml 数据解析
50. 【Android教程】xml 数据解析
17 1
|
2天前
|
Android开发
如何 将Android Studio升级至最新版(4.0)
如何 将Android Studio升级至最新版(4.0)
5 0
|
5天前
|
XML Java Android开发
Android RecyclerView用代码动态设置item的selector
Android RecyclerView用代码动态设置item的selector
10 0
|
5天前
|
开发工具 Android开发 git
Android自定义View——可以设置最大宽高的FrameLayout
Android自定义View——可以设置最大宽高的FrameLayout
18 0
|
5天前
|
JSON Android开发 数据格式
Android动态添加view设置view大小(宽高)
Android动态添加view设置view大小(宽高)
6 0