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

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

ทรัพยากร Dependency

แอปของคุณต้องมีสิทธิ์ WAKE_LOCK เพื่อตั้งค่าการล็อกที่ปลุก เพิ่มสิทธิ์ลงในไฟล์ Manifest ของแอป

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

สร้างและรับการล็อกการปลุก

หากต้องการรับการล็อกการปลุก ให้ทำดังนี้

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

  2. เมื่อต้องการให้อุปกรณ์ตื่นอยู่เสมอ ให้เรียกใช้เมธอด 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 วิธีนี้จะช่วยให้คุณค้นหาการล็อกการปลุกในซอร์สโค้ดได้ง่ายขึ้นหากเกิดข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่ตั้งชื่อการล็อกการปลุกอย่างเหมาะสม

ดูเพิ่มเติม