ตั้งค่าการล็อกที่ปลุกอุปกรณ์

คุณตั้งค่าการล็อกการปลุกเพื่อให้อุปกรณ์ทำงานชั่วคราวได้

การขึ้นต่อกัน

แอปของคุณต้องมีสิทธิ์ WAKE_LOCK เพื่อตั้งค่า Wake Lock เพิ่มสิทธิ์ลงในไฟล์ Manifest ของแอปโดยทำดังนี้

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

สร้างและรับ Wake Lock

หากต้องการรับ Wake Lock ให้ทำดังนี้

  1. เรียกใช้ PowerManager.newWakeLock() เพื่อสร้าง Wake Lock ซึ่งจะสร้างและกำหนดค่าออบเจ็กต์ PowerManager.WakeLock แต่ไม่ได้ ทำให้อุปกรณ์ตื่นอยู่เสมอจริงๆ

  2. เมื่อต้องการปลุกอุปกรณ์ไว้ ให้เรียกใช้เมธอด acquire() ของออบเจ็กต์ Wake Lock

เช่น หากแอปมี Broadcast Receiver ที่ใช้บริการเพื่อทำงานบางอย่าง คุณสามารถใช้โค้ดนี้เพื่อตั้งค่าและรับ Wake Lock ได้

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

ประเด็นสำคัญเกี่ยวกับรหัสนี้

เมื่อโค้ดสร้างออบเจ็กต์ Wake Lock โค้ดจะใช้ชื่อของคลาสเป็นส่วนหนึ่งของแท็ก Wake Lock เราขอแนะนำให้ใส่ชื่อแพ็กเกจ คลาส หรือเมธอด เป็นส่วนหนึ่งของแท็ก Wake Lock วิธีนี้จะช่วยให้คุณค้นหา Wake Lock ในซอร์สโค้ดได้ง่ายขึ้นในกรณีที่เกิดข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่ ตั้งชื่อ Wake Lock อย่างถูกต้อง

ดูเพิ่มเติม