LoginSignup
0
0

【Android】端末のスリープモードの操作【Kotlin】

Posted at

はじめに

今回は端末のスリープモードに関する操作をアプリ内でおこうなえるようにしていきます。

実践

以下は、参考記事をもとに 画面をスリープさせないようにするコードです。

private lateinit var wakeLock: PowerManager.WakeLock

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    val powerManager = getSystemService(Context.POWER_SERVICE) as PowerManager
    wakeLock = powerManager.newWakeLock(
        PowerManager.FULL_WAKE_LOCK or PowerManager.ACQUIRE_CAUSES_WAKEUP,
        "MyApp::MyWakelockTag"
    )
    window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
    wakeLock.acquire()
}

override fun onDestroy() {
    super.onDestroy()

    if (wakeLock.isHeld) {
        wakeLock.release()
    }

このままコピペで使えると思います。

wakeLockをonCreate()で定義し直すときに、条件を増やしたり上の例とは違う条件を設定することができます。

左揃え
PARTIAL_WAKE_LOCK CPUだけ設定
SCREEN_DIM_WAKE_LOCK CPUとScreenが一段階暗い状態に設定
SCREEN_BRIGHT_WAKE_LOCK CPUとScreenを設定
FULL_WAKE_LOCK CPU、Screen、KeyBoardを設定
ACQUIRE_CAUSES_WAKEUP wakeLock取得されたときに、強制的にON
ON_AFTER_RELEASE wakeLock取得時に照明がすぐに消えないようにする

また、acquire()の引数に時間を指定することで設定した時間の経過時間後に、wakeLockを動かすこともできるようです。

参考

0
0
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
0
0