private void loadSystemSettings(SQLiteDatabase db) {4 t7 C" B0 Y1 b3 N) Y5 m# l% H
d2 G; W8 ]" o$ E2 Y$ M: c8 E
SQLiteStatement stmt = db.compileStatement(“INSERT OR IGNORE INTO system(name,value)”
1 N7 F8 u7 h4 H( V5 x% w - S* ^+ s. L! n, u9 X
+ ” VALUES(?,?);”);: A' v9 {0 s# U4 u# I- i
9 F# `9 F0 |1 `; ^0 |, F7 y$ XResources r = mContext.getResources();8 Q0 @5 ~$ x+ g4 _# f, O
* Z- c8 y0 |. d1 }loadBooleanSetting(stmt, Settings.System.DIM_SCREEN,. p2 w: o6 `9 x! |
& g# c- {7 P; L. p
R.bool.def_dim_screen);
6 o3 F; M+ X; \9 j 6 |5 _! b8 B; T {
loadSetting(stmt, Settings.System.STAY_ON_WHILE_PLUGGED_IN,7 Q6 N& j/ t1 [7 N, k
+ M2 Q" Z( L- V3 w$ s“1″.equals(SystemProperties.get(“ro.kernel.qemu”)) ? 1 : 0);
2 Z$ X( V. w! k) k& y& A" _+ K
+ `; b: m5 A7 T/ MloadIntegerSetting(stmt, Settings.System.SCREEN_OFF_TIMEOUT,
- ]+ ^& ~9 ^/ k) C" q6 J6 y
, V5 K+ B& A. s5 n: nR.integer.def_screen_off_timeout);
+ ~2 h$ K' l( @5 c; E8 a
0 U: }, A6 c' @2 R9 a* n/ E8 C8 q// Set default cdma emergency tone4 n6 ]$ t Q8 P5 t7 g0 n- [0 Z
+ G) I0 c g0 m1 m3 { g5 O
loadSetting(stmt, Settings.System.EMERGENCY_TONE, 0);
; |) N a! ^1 [ B; i9 O/ ~5 R
8 K( d% I' v8 v) q6 b' _// Set default cdma call auto retry& M8 L: h7 Y* P( K* x/ S
! I2 f1 l" }7 X" v1 dloadSetting(stmt, Settings.System.CALL_AUTO_RETRY, 0);$ O* \# X8 B. X' T$ q" H& h. G
+ w: w! X$ T; J6 F- M1 ~
// Set default cdma DTMF type
6 T) ]6 B6 ^* {) J
. ~+ \$ K8 b! MloadSetting(stmt, Settings.System.DTMF_TONE_TYPE_WHEN_DIALING, 0);6 e5 v, n V6 s' v
. P+ S: _0 b) m. g4 e4 _9 _# t// Set default hearing aid1 B g* T8 x9 ^9 T! g# H6 f: ]) C
0 x! T9 }; d; S- O* x( QloadSetting(stmt, Settings.System.HEARING_AID, 0);( `# B- q2 J$ a2 x# [4 C- v
" ^* |8 f0 x- x// Set default tty mode: {2 j- m- G7 P# K' r
4 Q& R1 z. r6 m0 C! m( bloadSetting(stmt, Settings.System.TTY_MODE, 0);
5 t/ {5 @7 }9 V6 J- L$ T f
; T: S) V' e6 d' p" L2 l5 b/ n" `) cloadBooleanSetting(stmt, Settings.System.AIRPLANE_MODE_ON,! w7 A0 z; m( ]9 J9 t
P& B5 P& R/ [( n4 _; K
R.bool.def_airplane_mode_on);
3 P) M3 ?# n+ L' N( U) h7 U " r1 O& g; m4 m4 v3 H$ `
loadStringSetting(stmt, Settings.System.AIRPLANE_MODE_RADIOS," [/ O0 r! J4 c
8 l$ {' Z* E' d( g* }
R.string.def_airplane_mode_radios);
: u/ s- B" V7 M
+ l* q& M& k$ h8 B- n+ ]" WloadStringSetting(stmt, Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS,+ }+ x6 I, p3 w! I) w" O9 M
. D, q) V) R& o$ c7 t! @# k2 m
R.string.airplane_mode_toggleable_radios);$ H$ r2 B6 [' b, c3 u
9 n+ ^! {* X# B1 u7 |: a8 k
loadBooleanSetting(stmt, Settings.System.AUTO_TIME,
4 f/ U9 B- A" n 1 H/ T) T# Z. F9 Q v3 {- R+ x- S
R.bool.def_auto_time); // Sync time to NITZ
6 }) Q3 v, l9 |% N2 x2 ]/ N$ u : w, R, k6 [# ]- ]/ I! i' e* h
loadIntegerSetting(stmt, Settings.System.SCREEN_BRIGHTNESS,
" b2 b0 s* \- V/ U' x* D
/ w/ b% L. t% Y) V5 } L3 IR.integer.def_screen_brightness);
! q, p1 e# Y$ Z9 Z, X+ ~ 4 T/ H, T3 O0 a% g8 T
loadBooleanSetting(stmt, Settings.System.SCREEN_BRIGHTNESS_MODE,
% y6 z$ E- ~; u" L# x. o i 5 c, n2 D$ x8 D% s! k6 t
R.bool.def_screen_brightness_automatic_mode);! D& M4 r6 u- z$ A5 z* f
9 f/ ]4 w5 b0 [9 g' XloadDefaultAnimationSettings(stmt);9 T! X% S7 M# y& j' r/ C
: [* y6 \* O1 I8 u% a8 m
loadBooleanSetting(stmt, Settings.System.ACCELEROMETER_ROTATION,
8 @" F4 |( b! t' d s
7 q6 T d6 x: K, K: ZR.bool.def_accelerometer_rotation);
' G9 m- i7 L2 Z% {7 s2 ` * r7 u- {* g4 j W |' B
loadDefaultHapticSettings(stmt);
5 g' X$ t* ?* Q' V! r- V : |& d4 Q5 |: D+ P
stmt.close();
, @9 b, ]7 r7 g! D# X( x : K8 ` b: w: V3 b3 |1 G! Y. o+ W9 s
}' C- E+ y) f9 H* c
4 W- M8 \2 A1 w, Q$ M
我们通过查看源码便知道, Settings.System.SCREEN_OFF_TIMEOUT没有初始化的话(系统首次启动,这个字段肯定是没有初始化+ y# V+ K! ^( Z: D3 g) V/ d$ b- b
/ V* K! n V+ T1 M8 c
我们通过查看源码便知道, Settings.System.SCREEN_OFF_TIMEOUT没有初始化的话(系统首次启动,这个字段肯定是没有初始化的),系统将会利用资源中的R.integer.def_screen_off_timeout来初始化。我们为了让系统永不锁屏,只需要把资源 R.integer.def_screen_off_timeout设为-1即可。查看文件在这里: