คุณตั้งค่าการล็อกการปลุกเพื่อให้อุปกรณ์ทำงานชั่วคราวได้
การขึ้นต่อกัน
แอปของคุณต้องมีสิทธิ์ WAKE_LOCK
เพื่อตั้งค่า Wake Lock
เพิ่มสิทธิ์ลงในไฟล์ Manifest ของแอปโดยทำดังนี้
<uses-permission android:name="android.permission.WAKE_LOCK" />
สร้างและรับ Wake Lock
หากต้องการรับ Wake Lock ให้ทำดังนี้
เรียกใช้
PowerManager.newWakeLock()
เพื่อสร้าง Wake Lock ซึ่งจะสร้างและกำหนดค่าออบเจ็กต์PowerManager.WakeLock
แต่ไม่ได้ ทำให้อุปกรณ์ตื่นอยู่เสมอจริงๆเมื่อต้องการปลุกอุปกรณ์ไว้ ให้เรียกใช้เมธอด
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 อย่างถูกต้อง