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