LoginSignup
9
8

More than 5 years have passed since last update.

近接センサーで画面をOFFにする方法

Posted at

Androidの通話アプリは、近接センサーを利用して画面のON/OFFをしています。
これと同じ事を実装したかったので、てくぶ(Androidのセンサーを利用する)を読んで TYPE_PROXIMITY の値を取らないとなあ、とか調べていました。

Androidのよくあるパターンだと、こういうのは泥臭い実装が必要だったりするんですよね。

超簡単でした

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK, "tag");
wl.acquire();

...(この間有効)...

wl.release();

※WakeLockのPermissionが必要です

このPowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCKというフラグが、まさしく「近接センサーが反応している間だけ画面をOFFにする」という機能を提供しているのでした。

SDKドキュメントによるとAPIレベル21となっていますが、@hide宣言されてるだけでAndroid2.2でも存在していますので、compileSdkVersionに21以降を指定してコンパイルすれば古い端末でもばっちり動作します。

ネタ元:
http://stackoverflow.com/questions/3018716/android-turn-off-screen-when-close-to-face

以上です。

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8