AndroidのPower Managementで画面が消えるのを防ぐ方法
Android 1.0になってから、APMが正常に働いてしまい、いや働いてくれるのはうれしいのだが、1分放置すると画面が消えてしまうので、API DemoのAlertアプリを起動していたんだけど。Android Internalsに解決策があったので試してみた。
⇒ Power management settings? - Android Internals
Android 1.0ではsqlite3コマンドがAndroidファイルシステムから消えたので、android-sdk/toolsにあるsqlite3コマンドを使用する。/data/data/com.android.providers.settings/databasesからsettings.dbをPCにコピーして、
$ ./sqlite3 settings.db SQLite version 3.5.9 Enter ".help" for instructions sqlite> .tables android_metadata bookmarks gservices bluetooth_devices favorites system
たぶんsystemテーブルでしょう。
sqlite> .dump system BEGIN TRANSACTION; CREATE TABLE system (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT); INSERT INTO "system" VALUES(3,'volume_system','5'); INSERT INTO "system" VALUES(4,'volume_voice','4'); INSERT INTO "system" VALUES(5,'volume_alarm','6'); INSERT INTO "system" VALUES(6,'mode_ringer','2'); INSERT INTO "system" VALUES(7,'vibrate_on','4'); INSERT INTO "system" VALUES(8,'mode_ringer_streams_affected','6'); INSERT INTO "system" VALUES(9,'mute_streams_affected','14'); INSERT INTO "system" VALUES(10,'dim_screen','1'); INSERT INTO "system" VALUES(11,'stay_on_while_plugged_in','1'); INSERT INTO "system" VALUES(12,'screen_off_timeout','60000'); - - - snip - - -
60000msecで1分ですね。20時間くらいにしてみましょ。
sqlite> update system set value="7200000" where name="screen_off_timeout"; sqlite> select * from system where name="screen_off_timeout"; 12|screen_off_timeout|7200000 sqlite> .quit
settings.dbファイルをZaurusにコピーしなおして再起動。1分放置しても画面消えません。
screen_off_timeoutを0にしたら一生点きっ放しになるかと思ったけど、0秒で画面消えた。dim_screenを0にしてみたけど、効果があるのかどうかよくわからない。とりあえずこれでいいや。