डिवाइस को कुछ समय के लिए चालू रखने के लिए, वेक लॉक सेट किया जा सकता है.
डिपेंडेंसी
आपके ऐप्लिकेशन के पास, वेक लॉक सेट करने के लिए WAKE_LOCK की अनुमति होनी चाहिए.
अपने ऐप्लिकेशन के मेनिफ़ेस्ट में यह अनुमति जोड़ें:
<uses-permission android:name="android.permission.WAKE_LOCK" />
वेक लॉक बनाना और उसे पाना
वेक लॉक पाने के लिए, यह तरीका अपनाएं:
वेक लॉक बनाने के लिए, Call
PowerManager.newWakeLock()को कॉल करें. इससेPowerManager.WakeLockऑब्जेक्ट बनाया और कॉन्फ़िगर किया जाता है, लेकिन इससे डिवाइस चालू नहीं रहता.जब आपको डिवाइस को चालू रखना हो, तब वेक लॉक ऑब्जेक्ट के
acquire()तरीके को कॉल करें.
उदाहरण के लिए, अगर आपके ऐप्लिकेशन में ब्रॉडकास्ट रिसीवर शामिल है, जो कुछ काम करने के लिए किसी सेवा का इस्तेमाल करता है, तो वेक लॉक सेट करने और पाने के लिए इस कोड का इस्तेमाल किया जा सकता है:
Kotlin
val wakeLock: PowerManager.WakeLock = (getSystemService(POWER_SERVICE) as PowerManager).run { newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply { acquire(WAKELOCK_TIMEOUT) } }
Java
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag"); wakeLock.acquire(WAKELOCK_TIMEOUT);
इस कोड के बारे में खास जानकारी
जब कोड वेक लॉक ऑब्जेक्ट बनाता है, तो वह वेक लॉक टैग के हिस्से के तौर पर क्लास के नाम का इस्तेमाल करता है. हमारा सुझाव है कि वेक लॉक टैग में अपने पैकेज, क्लास या तरीके का नाम शामिल करें. इस तरह, अगर कोई गड़बड़ी होती है, तो आपके सोर्स कोड में वेक लॉक का पता लगाना आसान हो जाता है. ज़्यादा जानकारी के लिए, वेक लॉक का सही नाम दें लेख पढ़ें.
WakeLock.acquire(long)को मिलीसेकंड में टाइम आउट वैल्यू पास की जाती है. अगर आपने पहले से ही वेक लॉक रिलीज़ नहीं किया है, तो सिस्टम इस समय के बाद वेक लॉक रिलीज़ कर देता है.