显示
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) 发送数据请求来判断网络状态,如果成功就会返回一个特定的值表示设备可以连接到互联网.由于目前国内此地址无法访问,所以显示感叹号
解决办法有两个:
- 关闭网络检查服务:
存在问题碰到需要登录的网络也无法判断出来,从而无法提示用户进行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);
- 换网络检查服务的网址
//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);