میتوانید برای بیدار نگه داشتن موقت دستگاه، یک قفل بیدار تنظیم کنید.
وابستگی ها
برنامه شما باید مجوز WAKE_LOCK
را برای تنظیم یک قفل بیدار کند. مجوز را به مانیفست برنامه خود اضافه کنید:
<uses-permission android:name="android.permission.WAKE_LOCK" />
ایجاد و به دست آوردن یک قفل بیداری
برای بدست آوردن wake lock موارد زیر را انجام دهید:
برای ایجاد wake lock
PowerManager.newWakeLock()
را فراخوانی کنید. این یک شیPowerManager.WakeLock
را ایجاد و پیکربندی می کند اما در واقع دستگاه را بیدار نگه نمی دارد.هنگامی که میخواهید دستگاه را بیدار نگه دارید، متد
acquire()
شیء wake lock را فراخوانی کنید.
به عنوان مثال، اگر برنامه شما دارای یک گیرنده پخش است که از سرویسی برای انجام برخی کارها استفاده می کند، می توانید از این کد برای تنظیم و دریافت wake lock استفاده کنید:
کاتلین
val wakeLock: PowerManager.WakeLock =
(getSystemService(Context.POWER_SERVICE) as PowerManager).run {
newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply {
acquire()
}
}
جاوا
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,
"MyClassName::MyWakelockTag");
wakeLock.acquire();
نکات کلیدی در مورد این کد
هنگامی که کد شی wake lock را ایجاد می کند، از نام کلاس به عنوان بخشی از برچسب wake lock استفاده می کند. توصیه می کنیم نام بسته، کلاس یا روش خود را به عنوان بخشی از برچسب wake lock اضافه کنید. به این ترتیب، اگر خطایی رخ دهد، پیدا کردن wake lock در کد منبع شما آسان تر است. برای اطلاعات بیشتر، به درستی نامگذاری wake lock را ببینید.