【Android開発】画面が自動消灯しないようにするための設定

先日、アンドロイドアプリ「議事録」をアップデートした際に調べた内容の備忘録です。

調べた限りでは、画面の自動消灯を抑止する方法は下記2パターンあるようです。

  1. WakeLockを使用する
  2. FLAG_KEEP_SCREEN_ONを使用する

初めは前者のWakeLockを利用して実装を試みたのですが、Eclipse上でdeprecated(非推奨)の警告が出ていたので代替手段を探したところ、後者のFLAG_KEEP_SCREEN_ONを見つけました。

WakeLockは複数画面にわたって制御を入れられたり細かい設定ができるものの、下記パーミッションの追加が必要となり少々敷居が高いです。

<uses-permission android:name="android.permission.WAKE_LOCK" />

一方でFLAG_KEEP_SCREEN_ONは単一画面のみでの制御となりますが、パーミッションの追加も必要ありません。

今回の「議事録」では、入力画面の1画面のみを抑制できれば良かったので、FLAG_KEEP_SCREEN_ONを採用することにしました。

実装方法はとてもカンタン!
自動消灯をさせたくない画面のActivityのonCreateに下記のように1行追加するのみです。

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xxx);
//画面を点灯したままにする
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

明示的な解放処理も必要が無いってのも良い感じです。
実機でも確認してみましたが、本設定を入れた画面はもちろん自動消灯することはありませんでしたが、設定を入れていない画面に遷移するとちゃんと自動消灯されました。

ちなみに今回の「議事録」では実装していませんが、同一画面内で特定の処理をしたら自動消灯が行われるようにしたいような場合は、下記のコードを読み込ませれば良さそうです。

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

以上、ご参考まで

サブコンテンツ

公開中のAndroidアプリ(全て無料です)

ビジネス

おじさんのメモ帳 おじさんのメモ帳
シンプルなメモ帳
日報 日報
日報作成補助ツール
議事録 議事録
議事録作成補助ツール

学習(国語・算数)

漢字かな 漢字かな
漢字の読みの学習に
ひらがなプラス ひらがなプラス
かな・カナの学習に
暗算百問 暗算百問
毎日暗算で頭の体操
あんざん25 あんざん25
両手で計算してみよう

学習(理科・社会)

記号かな 地図記号
地図記号の学習に
魚かな 魚かな
海の生物の学習に
動物かな 動物かな
陸上の生物の学習に
野菜かな 野菜かな
植物な食物の学習に
元素記号 元素記号
元素記号の学習に

その他

こづかい帳 こづかい帳
計算力と金銭感覚を育もう
お絵かきプラス お絵かきプラス
メモや絵日記等に

このページの先頭へ