रूटीन बैटरी सेवर

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 के मुताबिक. यह है हस्ताक्षर/खास अनुमति, ताकि आप जिस ऐप्लिकेशन को ट्रिगर करना चाहते हैं उसे अनुमति दें privapp-whitelist में इस अनुमति का बैटरी सेवर मोड चालू है.

किसी ऐप्लिकेशन को privapp की अनुमति देने का उदाहरण:

<privapp-permissions package="com.google.android.apps.turbo">
   <permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>

अगर आपने सिस्टम इमेज पर मौजूद ऐप्लिकेशन के वर्शन को यह अनुमति पहले से नहीं दी है, तो ऐप्लिकेशन को अनुमति नहीं मिल सकती या एपीआई को सही तरीके से कॉल नहीं किया जा सकता. कॉन्टेंट बनाने सिस्टम, अनुमति से जुड़ी सामान्य गड़बड़ियों के अलावा कोई सुझाव नहीं देता. इसलिए, यह पुष्टि करें कि आपके पास एपीआई को कॉल करने और उनके असर पर नज़र रखने का विकल्प है.

इंस्टॉलेशन

रूटीन के आधार पर यह ऐप्लिकेशन ठीक से काम करे, इसके लिए आपको आवश्यक अनुमति के साथ सिस्टम इमेज. POWER_SAVER को सिर्फ़ एक ऐप्लिकेशन दें साथ ही, रूटीन के आधार पर एपीआई को कंट्रोल करने की अनुमति दी जाएगी. का व्यवहार जब एक से ज़्यादा ऐप्लिकेशन अनुमति और एपीआई इस्तेमाल करने की कोशिश करते हैं, तो यह सुविधा असमर्थित और अनिर्दिष्ट.

बैटरी सेवर ट्रिगर करें

API

यह मानते हुए कि सेटअप अब तक पूरा हुआ है, कॉन्फ़िगरेशन में बताए गए OEM ऐप्लिकेशन को ट्रिगर करने के लिए, 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 किस तरीके का इस्तेमाल करेगा मोड. इसलिए, OEM अपने इंटिग्रेशन की जांच करने के लिए ज़िम्मेदार हैं. इससे यह पक्का किया जाता है कि व्यवहार उम्मीदों के मुताबिक है. खास तौर पर, यह पुष्टि करें कि डिवाइस ये काम कर सकता है: ये टास्क पूरे करें:

  • उपयोगकर्ता, बैटरी सेवर शेड्यूल यूज़र इंटरफ़ेस (यूआई) में प्रतिशत के आधार पर चुनता है और 15% चुनता है. बैटरी सेवर सिर्फ़ तब अपने-आप चालू होना चाहिए, जब बैटरी 15% तक पहुंच गई है.
  • उपयोगकर्ता, बैटरी सेवर शेड्यूल यूज़र इंटरफ़ेस (यूआई) में रूटीन के हिसाब से विकल्प चुनता है. टास्क कब शुरू होगा ऐप्लिकेशन, एपीआई को true से कॉल करता है और बैटरी सेवर चालू हो जाता है. इसके अलावा, अगर डिवाइस को थ्रेशोल्ड लेवल दिखाया गया और अनप्लग किया गया.
  • उपयोगकर्ता, बैटरी सेवर शेड्यूल यूज़र इंटरफ़ेस (यूआई) में कोई नहीं चुनता है. बैटरी सेवर मोड कभी भी अपने-आप चालू नहीं होना चाहिए.
  • अगर ऐप्लिकेशन बैटरी सेवर की सुविधा को चालू करता है और उपयोगकर्ता मैन्युअल तरीके से बैटरी की सेटिंग बदलता है, तो सेव करने की सेटिंग को फिर से बंद करना हो (क्विक सेटिंग, सेटिंग वगैरह का इस्तेमाल करके), तब भी ऐसा ही रहना चाहिए बंद है, जब तक कि उपयोगकर्ता या तो इसे मैन्युअल रूप से फिर से चालू न कर दे या डिवाइस में.