Android常用系统设置-SettingsProvider篇

显示

1. 屏幕超时/自动锁屏
<!-- 2147483647 代表永不
        15000 代表15s  
        60000 代表1分钟
       以此类推
-->
<integer name="def_screen_off_timeout">2147483647</integer>

loadIntegerSetting(stmt, Settings.System.SCREEN_OFF_TIMEOUT,
                    R.integer.def_screen_off_timeout);
2. 无操作进入休眠
//-1为不进入休眠,单位为ms,10000为10s后休眠
<integer name="def_sleep_timeout">-1</integer>

 loadIntegerSetting(stmt, Settings.Secure.SLEEP_TIMEOUT,
                    R.integer.def_sleep_timeout);
3. 默认屏幕亮度
//取值区间为0–255
<integer name="def_screen_brightness">102</integer>
loadIntegerSetting(stmt, Settings.System.SCREEN_BRIGHTNESS,
                    R.integer.def_screen_brightness);
4. 是否开启屏幕亮度的自动调节
//需要硬件支持,默认关闭
<bool name="def_screen_brightness_automatic_mode">false</bool>
 loadBooleanSetting(stmt, Settings.System.SCREEN_BRIGHTNESS_MODE,
                    R.bool.def_screen_brightness_automatic_mode);
5. 屏幕的旋转方向
    <!-- Default for Settings.System.USER_ROTATION , vlaue 0/1/2/3 for  ROTATION_0/90/180/270-->
    <integer name="def_user_rotation">0</integer>
    loadBooleanSetting(stmt, Settings.System.USER_ROTATION,
                        R.integer.def_user_rotation); 
6. 字体大小默认为大
diff --git a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
index 25a5f05..07d968a 100644
--- a/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
+++ b/frameworks/base/packages/SettingsProvider/res/values/defaults.xml
@@ -228,4 +228,7 @@
 
 
     <string name="def_input_method">com.google.android.inputmethod.pinyin/.PinyinIME</string>
+
+    <item name="def_font_scale" format="float" type="dimen">1.15</item>
+
 </resources>
diff --git a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index 11013a4..57776e2 100644
--- a/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -42,6 +42,8 @@ import android.provider.Settings.Global;
 import android.provider.Settings.Secure;
 import android.text.TextUtils;
 import android.util.Log;
+import android.util.TypedValue;
+
 
 import com.android.ims.ImsConfig;
 import com.android.internal.content.PackageHelper;
@@ -2398,6 +2400,9 @@ class DatabaseHelper extends SQLiteOpenHelper {
 private void loadSystemSettings(SQLiteDatabase db) {

             loadIntegerSetting(stmt, Settings.System.SCREENSHOT_BUTTON_SHOW,
                     R.integer.def_screenshot_button_show);
+
+            loadFloatSetting(stmt, Settings.System.FONT_SCALE,
+                    R.dimen.def_font_scale);
         
@@ -2754,6 +2759,15 @@ class DatabaseHelper extends SQLiteOpenHelper {
                 Integer.toString(mContext.getResources().getInteger(resid)));
     }
 
+    private void loadFloatSetting(SQLiteStatement stmt, String key, int resid) {
+        TypedValue value = new TypedValue();
+        mContext.getResources().getValue(
+                    resid,
+                    value, false);
+        loadSetting(stmt, key,
+                Float.toString(value.getFloat()));
+    }
+
     private void loadFractionSetting(SQLiteStatement stmt, String key, int resid, int base) {
         loadSetting(stmt, key,
                 Float.toString(mContext.getResources().getFraction(resid, base, base)));

网络&互联网

1. 飞行模式是否默认开启
 <bool name="def_airplane_mode_on">false</bool>
 loadBooleanSetting(stmt, Settings.Global.AIRPLANE_MODE_ON,
                    R.bool.def_airplane_mode_on);
2. 剧场模式是否默认开启
<bool name="def_theater_mode_on">false</bool>
 loadBooleanSetting(stmt, Settings.Global.THEATER_MODE_ON,
                    R.bool.def_theater_mode_on);
3. 开启飞行模式时会关掉的开关列表(通常会包括蓝牙,wifi,nfc等)
    <!-- Comma-separated list of bluetooth, wifi, and cell. -->
    <string name="def_airplane_mode_radios" translatable="false">cell,bluetooth,wifi,nfc,wimax</string>
     loadStringSetting(stmt, Settings.Global.AIRPLANE_MODE_RADIOS,
                    R.string.def_airplane_mode_radios);
4. 飞行模式下用户可以手动开启的开关列表
<string name="airplane_mode_toggleable_radios" translatable="false">bluetooth,wifi,nfc</string>
loadStringSetting(stmt, Settings.Global.AIRPLANE_MODE_TOGGLEABLE_RADIOS,
                    R.string.airplane_mode_toggleable_radios);
5. 默认开启蓝牙
<bool name="def_bluetooth_on">true</bool>
loadBooleanSetting(stmt, Settings.Global.BLUETOOTH_ON,
                    R.bool.def_bluetooth_on);
6. 默认开启wifi
<bool name="def_wifi_on">false</bool>
loadBooleanSetting(stmt, Settings.Global.WIFI_ON,
                    R.bool.def_wifi_on);
7. wifi一直扫描扫描
<!-- Default for Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE -->
<integer name="def_wifi_scan_always_available">0</integer>
loadIntegerSetting(stmt, Settings.Global.WIFI_SCAN_ALWAYS_AVAILABLE,
                    R.integer.def_wifi_scan_always_available);

时间日期

1. 网络自动同步时区
<bool name="def_auto_time_zone">true</bool>
loadBooleanSetting(stmt, Settings.Global.AUTO_TIME_ZONE,
                    R.bool.def_auto_time_zone); // Sync timezone to NITZ
2. 网络自动同步时间
<bool name="def_auto_time">true</bool>
 loadBooleanSetting(stmt, Settings.Global.AUTO_TIME,
                    R.bool.def_auto_time); // Sync time to NITZ
3. 时间同步服务器
//系统原生的是使用google时间服务器,但是由于目前国内无法访问所以改为windows
<string name="def_ntp_server" translatable="false">
            time.windows.com
 </string>
loadStringSetting(stmt, Settings.Global.NTP_SERVER,
                    R.string.def_ntp_server);
4. 时间格式默认为24小时
    <!-- value 12/24/null 对应设置 12/24/自动-->
    <string name="def_time_12_24" translatable="false">24</string>            
    loadStringSetting(stmt, Settings.System.TIME_12_24,
                   R.string.def_time_12_24);

安全设置

1. 允许安装未知来源APP
<bool name="def_install_non_market_apps">false</bool>
loadBooleanSetting(stmt, Settings.Secure.INSTALL_NON_MARKET_APPS,
                    R.bool.def_install_non_market_apps);
2. 禁止锁屏
<bool name="def_lockscreen_disabled">false</bool>
loadBooleanSetting(stmt, Settings.System.LOCKSCREEN_DISABLED,
                        R.bool.def_lockscreen_disabled);
3. 系统是否需要进入开机向导
<bool name="def_device_provisioned">false</bool>

<!-- Default for Settings.Secure.USER_SETUP_COMPLETE -->
<bool name="def_user_setup_complete">false</bool>

<!-- Default for Settings.Secure.TV_USER_SETUP_COMPLETE -->
<bool name="def_tv_user_setup_complete">true</bool>
loadBooleanSetting(stmt, Settings.Global.DEVICE_PROVISIONED,
                    R.bool.def_device_provisioned);
 loadBooleanSetting(stmt, Settings.Secure.USER_SETUP_COMPLETE,
                    R.bool.def_user_setup_complete);
if (SystemProperties.get("ro.target.product","").equals("box")) {
                loadBooleanSetting(stmt, Settings.Secure.TV_USER_SETUP_COMPLETE,
                    R.bool.def_tv_user_setup_complete);
}

输入法相关

1. 始终显示软键盘

默认当插入鼠标、键盘或者是虚拟的输入设备时软键盘不显示

<!-- Default for Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD -->
<bool name="def_show_ime_with_hard_keyboard">true</bool>
 
 loadBooleanSetting(stmt, Settings.Secure.SHOW_IME_WITH_HARD_KEYBOARD,
      R.bool.def_show_ime_with_hard_keyboard);
2. 设置默认启用的输入法和默认输入法

默认输入法:当前系统默认调用的输入法
默认启用:系统可以同时开启多个输入法并进行快捷更换默认的输入法

<string name="enabled_input_methods" translatable="false">com.android.inputmethod.latin/.LatinIME:com.iflytek.inputmethod.google/com.iflytek.inputmethod.FlyIME:com.google.android.inputmethod.pinyin/.PinyinIME</string>
<string name="def_input_method" translatable="false">com.iflytek.inputmethod.google/com.iflytek.inputmethod.FlyIME</string>

loadStringSetting(stmt, Settings.Secure.ENABLED_INPUT_METHODS,
                    R.string.enabled_input_methods);
loadStringSetting(stmt, Settings.Secure.DEFAULT_INPUT_METHOD,
                    R.string.def_input_method);

声音

1. 触摸提示音
 <!-- Default for UI touch sounds enabled -->
 <bool name="def_sound_effects_enabled">true</bool>
 loadBooleanSetting(stmt, Settings.System.SOUND_EFFECTS_ENABLED,
                R.bool.def_sound_effects_enabled);

开发者选项

1. 充电时不会进入休眠
<bool name="def_stay_on_while_plugged_in">false</bool>
 loadSetting(stmt, Settings.Global.STAY_ON_WHILE_PLUGGED_IN,
                    ("1".equals(SystemProperties.get("ro.kernel.qemu")) ||
                        res.getBoolean(R.bool.def_stay_on_while_plugged_in))
                     ? 1 : 0);
2.窗口动画缩放
  //常规窗口动画的百分比值,为0时禁止窗口动画 
  <fraction name="def_window_animation_scale">100%</fraction>  
  
  loadFractionSetting(stmt, Settings.System.WINDOW_ANIMATION_SCALE,
                R.fraction.def_window_animation_scale, 1);
     
3.过渡动画缩放
      //activity过渡窗口动画的百分比值,为0时禁止窗口动画 
      <fraction name="def_window_transition_scale">100%</fraction>
      
      loadFractionSetting(stmt, Settings.System.TRANSITION_ANIMATION_SCALE,
                R.fraction.def_window_transition_scale, 1);
     
4. 显示点按操作反馈
     <bool name="def_pointer_location">true</bool>
     
     loadBooleanSetting(stmt, Settings.System.POINTER_LOCATION,
              R.bool.def_pointer_location);
5. 显示指针位置
     <bool name="def_show_touches">true</bool>
     
      loadBooleanSetting(stmt, Settings.System.SHOW_TOUCHES,
              R.bool.def_show_touches);

状态栏

1. 始终隐藏状态栏
    <!-- always hide statusbar -->
    <bool name="def_always_hide_bar">false</bool>
    
    loadBooleanSetting(stmt, Settings.System.ALWAYS_HIDE_BAR,
                    R.bool.def_always_hide_bar);
2. 显示隐藏状态栏按钮
    <!-- should show the hidebar button default -->
    <bool name="def_hidebar_button_show">true</bool> 
    loadBooleanSetting(stmt, Settings.System.HIDEBAR_BUTTON_SHOW,
                    R.bool.def_hidebar_button_show);
3. 显示截屏按钮
    <!-- should show the screenshot button default -->
    <integer name="def_screenshot_button_show">0</integer>
    loadIntegerSetting(stmt, Settings.System.SCREENSHOT_BUTTON_SHOW,
                    R.integer.def_screenshot_button_show);
4.网络图标显示感叹号

从 Android 5.0 开始,当系统连接网络时,系统模块 NetworkMonitor 就会向 Google 的一个特定网址(http://www.google.com/generate_204) 发送数据请求来判断网络状态,如果成功就会返回一个特定的值表示设备可以连接到互联网.由于目前国内此地址无法访问,所以显示感叹号

解决办法有两个:

  1. 关闭网络检查服务:

存在问题碰到需要登录的网络也无法判断出来,从而无法提示用户进行web登录了,所以不推荐

    <bool name="def_captive_portal_detection_enabled">false</bool> 
    loadBooleanSetting(stmt, Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED,
                    R.bool.def_captive_portal_detection_enabled);
  1. 换网络检查服务的网址
	   //5.1.1
       <string name="def_captive_portal_server" translatable="false">https://captive.v2ex.co/generate_204</string>
       loadStringSetting(stmt,Settings.Global.CAPTIVE_PORTAL_SERVER,
                    R.string.def_captive_portal_server);
 
      //7.1.1以后
      <string name="def_captive_portal_https_url"  translatable="false">https://captive.v2ex.co/generate_204</string>
      <string name="def_captive_portal_http_url" translatable="false">http://captive.v2ex.co/generate_204</string>
      <bool name="def_captive_portal_use_https">true</bool> 
   
      loadStringSetting(stmt,Settings.Global.CAPTIVE_PORTAL_HTTPS_URL,
                    R.string.def_captive_portal_https_url);
       loadStringSetting(stmt,Settings.Global.CAPTIVE_PORTAL_HTTP_URL,
                    R.string.def_captive_portal_http_url);
       loadBooleanSetting(stmt, Settings.Global.CAPTIVE_PORTAL_USE_HTTPS,
                    R.bool.def_captive_portal_use_https);

其他

1. 关闭双击电源键打开相机
   <bool name="def_camera_double_tap_power_gesture_disable">false</bool>
    loadBooleanSetting(stmt, Settings.Secure.CAMERA_DOUBLE_TAP_POWER_GESTURE_DISABLED,
                    R.bool.def_camera_double_tap_power_gesture_disable);
2. 关闭沉浸式全屏提醒

在这里插入图片描述

<string name="def_immersive_mode_confirmations" translatable="false">confirmed</string>
 loadStringSetting(stmt, Settings.Secure.IMMERSIVE_MODE_CONFIRMATIONS,
                        R.string.def_immersive_mode_confirmations);
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AndroidSettingsProvider是一个系统级应用程序,用于管理设备的设置信息。当Android系统升级时,SettingsProvider也会相应地进行升级。 首先,升级会带来一些新的设置选项。随着Android版本的更新,新的功能和特性将被引入到系统中,这些功能和特性将需要对应的设置选项来进行配置。因此,SettingsProvider需要进行升级,以支持这些新的设置选项。 其次,升级还会修复一些已知的问题和漏洞。在旧版本的SettingsProvider中可能存在一些bug或者安全漏洞,这些问题会被逐步修复和解决。升级后的SettingsProvider将包含修复后的代码,以提高系统的稳定性和安全性。 此外,升级还可能会改变SettingsProvider的数据结构或存储方式。为了满足新的需求和功能,SettingsProvider的数据存储可能需要进行调整和优化。这可能涉及到数据库表结构的更改或者数据存储的格式改变等。 最后,升级还可能会提供更好的性能和响应速度。随着系统的发展,我们对设备的性能和用户体验的要求也在不断提高。升级后的SettingsProvider可能会经过优化,以提供更快的数据查询和更新速度,从而使用户的设置操作更加流畅和高效。 综上所述,Android系统的升级会带来SettingsProvider的升级,以支持新的设置选项、修复问题和漏洞、改变数据结构和存储方式,并提供更好的性能和响应速度。这些升级将不断提高Android设备的功能和使用体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值