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:
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.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.