Menetapkan penguncian layar saat aktif

Anda dapat menyetel kunci tetap aktif agar perangkat tetap aktif untuk sementara.

Dependensi

Aplikasi Anda harus memiliki izin WAKE_LOCK untuk menyetel kunci tetap aktif. Tambahkan izin ke manifes aplikasi Anda:

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

Membuat dan mendapatkan kunci tetap aktif

Untuk mendapatkan kunci tetap aktif, lakukan hal berikut:

  1. Panggil PowerManager.newWakeLock() untuk membuat kunci layar saat aktif. Tindakan ini akan membuat dan mengonfigurasi objek PowerManager.WakeLock, tetapi tidak benar-benar membuat perangkat tetap aktif.

  2. Saat Anda ingin perangkat tetap aktif, panggil metode acquire() objek penguncian layar saat aktif.

Misalnya, jika aplikasi Anda menyertakan penerima siaran yang menggunakan layanan untuk melakukan beberapa pekerjaan, Anda dapat menggunakan kode ini untuk menyetel dan mendapatkan fitur penguncian layar saat aktif:

Kotlin

val wakeLock: PowerManager.WakeLock =
    (getSystemService(POWER_SERVICE) as PowerManager).run {
        newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply {
            acquire(WAKELOCK_TIMEOUT)
        }
    }

Java

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
PowerManager.WakeLock wakeLock =
        powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag");
wakeLock.acquire(WAKELOCK_TIMEOUT);

Poin penting tentang kode ini

  • Saat membuat objek kunci tetap aktif, kode menggunakan nama class sebagai bagian dari tag kunci tetap aktif. Sebaiknya sertakan nama paket, class, atau metode sebagai bagian dari tag penguncian layar saat aktif. Dengan begitu, jika terjadi error, akan lebih mudah menemukan kunci tetap aktif dalam kode sumber Anda. Untuk mengetahui informasi selengkapnya, lihat Beri nama penguncian layar saat aktif dengan benar.

  • WakeLock.acquire(long) meneruskan nilai waktu tunggu dalam milidetik. Sistem akan melepaskan penguncian layar saat aktif setelah jangka waktu ini berlalu, jika Anda belum melepaskannya.

Lihat juga