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