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にしてみたけど、効果があるのかどうかよくわからない。とりあえずこれでいいや。