Android
डोज़ मोड
खोज…
टिप्पणियों
डोज़ मोड उन परिवर्तनों और नियमों का एक सेट है जो निष्क्रिय होने पर आपके फ़ोन को सोने के लिए रख देते हैं।
एंड्रॉइड 6.0 मार्शमैलो पर: स्क्रीन बंद होने के बाद डोज़ मोड सक्रिय हो जाता है, डिवाइस स्थिर है और यह बैटरी पर चल रहा है। जैसा कि आप ऊपर दिए गए आरेख में देख सकते हैं, जब डोज मोड सक्रिय हो जाता है, तो डिवाइस को कोई वैकलॉक, नेटवर्क एक्सेस, जॉब / सिंक, अलार्म, जीपीएस / वाई-फाई स्कैन नहीं मिलता है।
एंड्रॉइड 7.0 नौगट पर: कल्पना करें कि क्या आपका फोन आपकी जेब में है (स्क्रीन बंद है, यह बैटरी पर चल रहा है, लेकिन यह स्थिर नहीं है) क्या आप डोज़ मोड सुविधाओं को भी प्राप्त करना चाहते हैं, ठीक है? इसलिए Google ने विस्तारित डोज़ मोड की घोषणा की: यह स्क्रीन बंद होने पर चलता है, लेकिन स्थिर नहीं। जैसा कि आप इस आरेख में देख सकते हैं, केवल नेटवर्क एक्सेस और जॉब / सिंक अक्षम हैं। ध्यान दें कि विस्तारित Doze पहले Doze मोड को प्रतिस्थापित नहीं करता है। वे फोन राज्य (स्थिर या नहीं) के आधार पर एक साथ काम करते हैं। यहाँ निम्नलिखित हैं: डेवलपर्स को पता होना चाहिए कि:
- उच्च प्राथमिकता वाले GCM (Google क्लाउड मैसेजिंग) संदेशों के लिए डोज़ अस्थायी वाक्लेक और नेटवर्क एक्सेस रख सकता है (ऐसे मामलों के लिए जहां उपयोगकर्ता को तत्काल सूचना की आवश्यकता हो);
- फोरग्राउंड सेवाएं (जैसे संगीत प्लेबैक) काम करना जारी रखेंगी।
आप अधिक जानकारी यहाँ पा सकते हैं: https://developer.android.com/training/monitoring-device-state/doze-standby.html
डोज़ मोड का उपयोग करके एप्लिकेशन को बाहर निकालें
- फ़ोन की सेटिंग खोलें
- खुली बैटरी
- मेनू खोलें और "बैटरी ऑप्टिमाइज़ेशन" चुनें
- ड्रॉपडाउन मेनू से "सभी एप्लिकेशन" चुनें
- आप जिस ऐप को वाइटेलिस्ट करना चाहते हैं, उसे चुनें
- "ऑप्टिमाइज़ न करें" चुनें
अब यह ऐप ऑप्टिमाइज़ नहीं किए गए ऐप के तहत दिखाई देगा।
कोई एप्लिकेशन को फोन करके देख सकते हैं कि यह श्वेत सूची में है isIgnoringBatteryOptimizations()
एक Android एप्लिकेशन को प्रोग्रामेटिक रूप से श्वेत करना
व्हिटेलिस्टिंग आपके ऐप के लिए डोज़ मोड को अक्षम नहीं करेगा, लेकिन आप नेटवर्क और होल्ड-वेक लॉक का उपयोग करके ऐसा कर सकते हैं।
एंड्रॉइड एप्लिकेशन को प्रोग्राम के रूप में श्वेत सूची में निम्न प्रकार से किया जा सकता है:
boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName());
if(!isIgnoringBatteryOptimizations){
Intent intent = new Intent();
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivityForResult(intent, MY_IGNORE_OPTIMIZATION_REQUEST);
}
उपरोक्त गतिविधि शुरू करने का परिणाम निम्न कोड द्वारा सत्यापित किया जा सकता है:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == MY_IGNORE_OPTIMIZATION_REQUEST) {
PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
boolean isIgnoringBatteryOptimizations = pm.isIgnoringBatteryOptimizations(getPackageName());
if(isIgnoringBatteryOptimizations){
// Ignoring battery optimization
}else{
// Not ignoring battery optimization
}
}
}