Android 10 में, बैटरी सेवर को शेड्यूल करने का एक विकल्प दिया गया है. इसे रूटीन के आधार पर कहा जाता है. इस विकल्प की मदद से, ओईएम की ओर से चुना गया ऐप्लिकेशन, सिस्टम को सिग्नल भेज सकता है. इससे बैटरी सेवर को ज़्यादा स्मार्ट तरीके से शेड्यूल किया जा सकता है. इस विकल्प के लिए कॉन्फ़िगरेशन की ज़रूरत होती है. हालांकि, इसे लागू करना ज़रूरी नहीं है.
डिवाइस कॉन्फ़िगरेशन
इस सेक्शन में, रूटीन के आधार पर विकल्प के लिए, अपने डिवाइस को कॉन्फ़िगर करने का तरीका बताया गया है.
सेवा देने वाली कंपनी की जानकारी
डिवाइस को सही तरीके से कॉन्फ़िगर किए जाने की सूचना सेटिंग यूज़र इंटरफ़ेस (यूआई) को देने के लिए, अपने कॉन्फ़िगरेशन ओवरले का इस्तेमाल करके, config_batterySaverScheduleProvider वैल्यू को अपने ऐप्लिकेशन के पैकेज के नाम से बदलें. उदाहरण के लिए, अगर आपको रूटीन के आधार पर सेटिंग को कंट्रोल करने के लिए, ऐप्लिकेशन पैकेज com.google.android.apps.turbo का इस्तेमाल करना है, तो कॉन्फ़िगरेशन की यह वैल्यू सेट करें:
<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>
पुष्टि करने के लिए, अपनी इमेज बनाएं, उसे किसी डिवाइस पर फ़्लैश करें, और सेटिंग पर जाएं
बैटरी > बैटरी सेवर > बैटरी सेवर का शेड्यूल पर जाएं. रूटीन के आधार पर विकल्प दिखता है.
डिफ़ॉल्ट रूप से बंद होने की सीमा
config_dynamicPowerSavingsDefaultDisableThreshold फ़ील्ड में बैटरी का वह लेवल तय किया जाता है जिस पर रूटीन के आधार पर बैटरी सेवर को चालू करने वाले शेड्यूलर के चालू किए जाने पर, सिस्टम बैटरी सेवर को बंद कर देता है. सिस्टम डिफ़ॉल्ट रूप से 80% पर सेट होता है. हालांकि, इसे बदला जा सकता है.
ऐप्लिकेशन का कॉन्फ़िगरेशन
इस सेक्शन में, रोज़ की गतिविधि के आधार पर विकल्प का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन को कॉन्फ़िगर करने का तरीका बताया गया है.
अनुमतियां
किसी ऐप्लिकेशन के लिए, रूटीन बैटरी सेवर को चालू करने के लिए ज़रूरी एपीआई, android.permission.POWER_SAVER अनुमति से सुरक्षित होते हैं. यह हस्ताक्षर या खास अनुमति है. इसका मतलब है कि ऐप्लिकेशन, सिस्टम इमेज पर priv-app डायरेक्ट्री में होना चाहिए. साथ ही, आपको साफ़ तौर पर यह अनुमति देनी होगी.
ज़्यादा सुविधाओं वाले ऐप्लिकेशन के लिए, आपको सिस्टम कॉन्फ़िगरेशन वाली एक्सएमएल फ़ाइल में अनुमतियां देनी होंगी. यह फ़ाइल, ऐप्लिकेशन वाले पार्टीशन पर मौजूद /etc/permissions/ डायरेक्ट्री में होनी चाहिए. उदाहरण के लिए, com.google.android.apps.turbo पैकेज के नाम वाले ऐप्लिकेशन को android.permission.POWER_SAVER की अनुमति देने के लिए:
<!-- File located at /etc/permissions/privapp-permissions-DEVICE_NAME.xml -->
<permissions>
<privapp-permissions package="com.google.android.apps.turbo">
<permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>
</permissions>
अगर आपने सिस्टम इमेज पर ऐप्लिकेशन को यह अनुमति पहले से नहीं दी है, तो ऐप्लिकेशन को अनुमति नहीं मिलेगी. साथ ही, वह एपीआई को कॉल नहीं कर पाएगा. सिस्टम, अनुमति से जुड़ी सामान्य गड़बड़ियों के अलावा कोई और सुझाव नहीं देता. इसलिए, यह पुष्टि करना ज़रूरी है कि ऐप्लिकेशन, एपीआई को कॉल कर सकता है और उनके असर को देख सकता है.
इंस्टॉलेशन
रूटीन के आधार पर सुविधा के ठीक से काम करने के लिए, आपको सिस्टम इमेज पर ऐप्लिकेशन को पहले से इंस्टॉल करना होगा. साथ ही, ज़रूरी अनुमति देनी होगी. सिर्फ़ एक ऐप्लिकेशन को android.permission.POWER_SAVER की अनुमति दें और उसे रूटीन के आधार पर एपीआई को कंट्रोल करने दें. अगर एक से ज़्यादा ऐप्लिकेशन, अनुमति और एपीआई का इस्तेमाल करने की कोशिश करते हैं, तो सुविधा के काम करने के तरीके के बारे में न तो बताया गया है और न ही इसका सुझाव दिया गया है.
बैटरी सेवर मोड को चालू करने वाला रूटीन ट्रिगर करना
इस सेक्शन में बताया गया है कि दिए गए एपीआई का इस्तेमाल करके, आपका ऐप्लिकेशन डिवाइस के इस्तेमाल के आधार पर बैटरी सेवर को कैसे ट्रिगर कर सकता है.
API
अगर सेटअप हो जाता है, तो कॉन्फ़िगरेशन में बताया गया ओईएम ऐप्लिकेशन, बैटरी सेवर को चालू करने के लिए PowerManager में दिए गए तरीके को कॉल कर सकता है:
public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)
अगर रूटीन के आधार पर बैटरी सेवर शेड्यूल करने का विकल्प चालू है और ऐप्लिकेशन powerSaveHint के लिए true वैल्यू के साथ इस तरीके को कॉल करता है, तो बैटरी सेवर चालू हो जाता है. disableThreshold तय करें, ताकि अगर ऐप्लिकेशन सिस्टम से कम्यूनिकेट न कर पाए, तो सिस्टम को यह पता रहे कि बैटरी के किस प्रतिशत पर बैटरी सेवर मोड को बंद करना सुरक्षित है.
यह एपीआई, उपयोगकर्ता के बैटरी सेवर को बंद करने और बैटरी सेवर को कुछ समय के लिए बंद करने की सुविधा के साथ काम करता है. यह सुविधा, बैटरी के प्रतिशत के आधार पर बैटरी सेवर के अपने-आप चालू होने की सुविधा की तरह ही काम करती है. ज़्यादा जानकारी के लिए, एपीआई से जुड़ा दस्तावेज़ देखें.
एपीआई को सही तरीके से कॉल किया गया है या नहीं, इसकी पुष्टि करने के लिए ग्लोबल सेटिंग के बारे में क्वेरी करें. इससे यह पुष्टि की जा सकेगी कि एपीआई कॉल के हिसाब से सेटिंग की वैल्यू बदल गई है.
उदाहरण के लिए, अगर आपने रूटीन के आधार पर बैटरी सेवर मोड चुना है और ऐप्लिकेशन setDynamicPowerSaveHint(true, 10) को कॉल करता है, तो ग्लोबल सेटिंग में ये वैल्यू होंगी:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1
इसके बाद, setDynamicPowerSaveHint(false, 25) को कॉल करने पर वैल्यू ये होंगी:
automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0
इस adb कमांड का इस्तेमाल करके, इन वैल्यू की जांच की जा सकती है:
adb shell settings get global <setting-name>
पुष्टि
इस सुविधा की पुष्टि करने का कोई भी अपने-आप होने वाला तरीका नहीं है, क्योंकि ओईएम यह तय करता है कि बैटरी सेवर मोड को रूटीन के आधार पर ट्रिगर करने वाला व्यवहार क्या है. OEM को अपने इंटिग्रेशन की जांच करनी चाहिए, ताकि यह पुष्टि की जा सके कि यह उम्मीद के मुताबिक काम कर रहा है. खास तौर पर, पुष्टि करें कि डिवाइस ये काम कर सकता है:
- बैटरी के प्रतिशत के आधार पर: अगर आपने बैटरी सेवर के शेड्यूल यूज़र इंटरफ़ेस (यूआई) में बैटरी के प्रतिशत के आधार पर विकल्प चुना है और 15% चुना है, तो बैटरी सेवर की सुविधा सिर्फ़ तब अपने-आप चालू होगी, जब बैटरी 15% तक पहुंच जाएगी.
- रूटीन के आधार पर: अगर आपने बैटरी सेवर शेड्यूल यूज़र इंटरफ़ेस (यूआई) में रूटीन के आधार पर विकल्प चुना है, तो ऐप्लिकेशन के
trueके साथ एपीआई को कॉल करने पर, बैटरी सेवर चालू हो जाएगा. इसके अलावा, अगर डिवाइस को तय सीमा तक चार्ज किया जाता है और उसे अनप्लग कर दिया जाता है, तो बैटरी सेवर की सुविधा अपने-आप बंद हो जाती है. - कोई नहीं: बैटरी सेवर के शेड्यूल वाले यूज़र इंटरफ़ेस (यूआई) में कोई नहीं विकल्प चुनने पर, बैटरी सेवर की सुविधा कभी भी अपने-आप चालू नहीं होती.
- मैन्युअल तरीके से बंद करना: अगर ऐप्लिकेशन बैटरी सेवर की सुविधा चालू करता है और आपने क्विक सेटिंग, सेटिंग या किसी अन्य तरीके का इस्तेमाल करके, बैटरी सेवर की सुविधा को मैन्युअल तरीके से बंद किया है, तो यह तब तक बंद रहेगी, जब तक आप इसे मैन्युअल तरीके से फिर से चालू नहीं करते या डिवाइस को प्लग इन नहीं करते.