My Photo

« 朝日新聞土曜版の「職場の理不尽Q&A」が頭にくる | Main | Androidアプリ開発メモ060:画面が回転するとonDestroy()が呼ばれる »

January 31, 2012

Androidアプリ開発メモ059:スリープから復帰させる

関連する記事:Androidアプリ開発メモ058:ロック画面を出さないようにする

「スリープから復帰させる」と言っても、そもそもどういう状態をスリープというのかがわからない。
電源は入っているけど画面の真っ暗の状態のことではないとどこぞに書いてあったが、自分としては
「しばら端末を操作せずに置いて画面が真っ暗になった状態」
だと思っている^^;

スリープから復帰させるにはまず PowerManager を getSystemService() で取得し、その PowerManager#newWakeLock() で WakeLock を取得して acquire() でロックを取得する。
ロックを取得したら、適切なタイミングでロックを release() しなければならない。そうしないとリソースの解放漏れ?ずっとスリープにならなくなる?

android.os.PowerManagerクラス
public PowerManager.WakeLock newWakeLock(int flags, String tag)
フラグパラメータのレベルにあるウェイクロックを得る。ウェイクロックを取得するためにそのオブジェクト上で acquire() を呼び、終わったら release() を呼ぶ。
もしスクリーンをonにキープするためにこれを使うなら、代わりに FLAG_KEEP_SCREEN_ON を使うことを考えるべきである。このwindowフラグはプラットフォームによって正確に管理されるだろう、ユーザがアプリケーション間を動くときに。そして特別なパーミッションを必要としない。
引数
  flags  フラグ値の組み合わせ
  tag    デバッグのためのクラス名(または他のタグ)

android.os.PowerManager.WakeLockクラス
public void acquire()
デバイスをウェイクアップロックを作成したときに要求したレベルでオンにする。

android.os.PowerManager.WakeLockクラス
public void release()
CPUまたは画面がonであるという主張をリリースする。
リリースされ後すぐにoffになるだろう。すなわち他の保持されているロックがあればoffにならないだろう。

newWakeLock() で指定するフラグは、スリープ状態から起こして画面を表示するならば
FLAG_SHOW_WHEN_LOCKED | FLAG_TURN_SCREEN_ON | FLAG_DISMISS_KEYGUARD
で良いようだ。

PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK
	| PowerManager.ACQUIRE_CAUSES_WAKEUP
	| PowerManager.ON_AFTER_RELEASE,
	"TimerExample6");
wakeLock.acquire();
// この間、ロックを取得した状態にある
wakeLock.release();

参考ページ:
Y.A.M の 雑記帳: Android PowerManager を使う
画面を ON のままにする方法 - Android 開発入門
液晶パネルのWakeLockを取得し、Sleep状態からWake状態へ遷移する | Tech Booster
スクリーンロックを解除する方法 - 明日の鍵

« 朝日新聞土曜版の「職場の理不尽Q&A」が頭にくる | Main | Androidアプリ開発メモ060:画面が回転するとonDestroy()が呼ばれる »

Androidアプリ開発」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/53871526

Listed below are links to weblogs that reference Androidアプリ開発メモ059:スリープから復帰させる:

« 朝日新聞土曜版の「職場の理不尽Q&A」が頭にくる | Main | Androidアプリ開発メモ060:画面が回転するとonDestroy()が呼ばれる »

April 2017
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof