Uyanık kalma kilidi ayarla

Cihazı geçici olarak uyanık tutmak için uyanık tutma kilidi ayarlayabilirsiniz.

Bağımlılıklar

Uygulamanızın, uyandırma kilidi ayarlamak için WAKE_LOCK izni olmalıdır. İzni uygulamanızın manifest dosyasına ekleyin:

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

Uyanık kalma kilidi oluşturma ve edinme

Uyanık kalma kilidi almak için aşağıdakileri yapın:

  1. Uyanık kalma kilidi oluşturmak için PowerManager.newWakeLock() çağrısı yapın. Bu komut, PowerManager.WakeLock nesnesi oluşturup yapılandırır ancak cihazı uyanık tutmaz.

  2. Cihazı uyanık tutmak istediğinizde, uyandırma kilidi nesnesinin acquire() yöntemini çağırın.

Örneğin, uygulamanızda bazı işlemleri yapmak için hizmet kullanan bir yayın alıcısı varsa uyanık kalma kilidi ayarlamak ve edinmek için bu kodu kullanabilirsiniz:

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);

Bu kodla ilgili önemli noktalar

  • Kod, uyandırma kilidi nesnesini oluştururken uyandırma kilidi etiketinin bir parçası olarak sınıfın adını kullanır. Paketinizin, sınıfınızın veya yönteminizin adını uyandırma kilidi etiketine eklemenizi öneririz. Bu sayede, bir hata oluşursa kaynak kodunuzdaki uyandırma kilidini bulmak daha kolay olur. Daha fazla bilgi için Uyandırma kilidini doğru şekilde adlandırma başlıklı makaleyi inceleyin.

  • WakeLock.acquire(long) işlevine milisaniye cinsinden bir zaman aşımı değeri iletilir. Siz zaten serbest bırakmadıysanız sistem, bu süre geçtikten sonra uyandırma kilidini serbest bırakır.

Ayrıca bkz.