הגדרת נעילה מצב שינה

אפשר להגדיר wake lock כדי שהמכשיר יישאר פעיל באופן זמני.

תלויות

לאפליקציה שלכם צריכה להיות הרשאת WAKE_LOCK כדי להגדיר נעילת השהיה. מוסיפים את ההרשאה למניפסט של האפליקציה:

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

יצירה וקבלת נעילת השכמה

כדי לקבל נעילת השכמה:

  1. מפעילים את הפונקציה Call PowerManager.newWakeLock() כדי ליצור נעילת השכמה. הפעולה הזו יוצרת ומגדירה אובייקט PowerManager.WakeLock אבל לא מונעת מהמכשיר לעבור למצב שינה.

  2. כשרוצים שהמכשיר לא יעבור למצב שינה, קוראים ל-method‏ acquire() של אובייקט נעילת ההשכמה.

לדוגמה, אם האפליקציה כוללת מקלט שידור שמשתמש בשירות כדי לבצע פעולה מסוימת, אפשר להשתמש בקוד הזה כדי להגדיר ולרכוש נעילת השכמה:

Kotlin

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

Java

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

נקודות חשובות לגבי הקוד הזה

כשהקוד יוצר את אובייקט הנעילה למניעת שינה, הוא משתמש בשם המחלקה כחלק מתג הנעילה למניעת שינה. מומלץ לכלול את שם החבילה, הכיתה או השיטה כחלק מתג הנעילה של ההפעלה. כך, אם מתרחשת שגיאה, קל יותר לאתר את נעילת ההשכמה בקוד המקור. מידע נוסף זמין במאמר Name the wake lock properly.

למידע נוסף