वाई-फ़ाई प्रेफ़र्ड नेटवर्क ऑफ़लोड (पीएनओ) स्कैन, कम पावर वाले वाई-फ़ाई स्कैन होते हैं. ये स्कैन, डिवाइस के वाई-फ़ाई से डिसकनेक्ट होने और स्क्रीन बंद होने पर, नियमित अंतराल पर होते हैं. पीएनओ स्कैन का इस्तेमाल, सेव किए गए नेटवर्क को ढूंढने और उनसे कनेक्ट करने के लिए किया जाता है. इन स्कैन को फ़्रेमवर्क, NL80211_CMD_START_SCHED_SCAN
कमांड का इस्तेमाल करके शेड्यूल करता है. ज़्यादा जानकारी के लिए, nl80211.h देखें.
डिवाइस की जगह की जानकारी का इस्तेमाल करके, बैटरी के इस्तेमाल को ऑप्टिमाइज़ करना
Android 9 या इससे पहले के वर्शन पर काम करने वाले डिवाइसों पर, जब डिवाइस वाई-फ़ाई से डिसकनेक्ट हो जाता है और स्क्रीन बंद हो जाती है, तो पहले तीन स्कैन के लिए, पीएनओ स्कैन हर 20 सेकंड के अंतराल पर होते हैं. इसके बाद, सभी स्कैन के लिए, यह हर 60 सेकंड के अंतराल पर होता है. सेव किया गया नेटवर्क मिलने या स्क्रीन चालू होने पर, पीएनओ स्कैनिंग बंद हो जाती है.
Android 10 में, WifiManager
में setDeviceMobilityState()
नाम का एक वैकल्पिक एपीआई तरीका पेश किया गया है. यह डिवाइस की मोबिलिटी की स्थिति के आधार पर, पीएनओ स्कैन के बीच के इंटरवल को बढ़ाता है, ताकि बिजली की खपत कम हो.
विकलांगता की ये स्थितियां हो सकती हैं:
DEVICE_MOBILITY_STATE_UNKNOWN
: मोबिलिटी की जानकारी नहीं हैDEVICE_MOBILITY_STATE_HIGH_MVMT
: साइकल या मोटर वाहन मेंDEVICE_MOBILITY_STATE_LOW_MVMT
: पैदल चलना या दौड़नाDEVICE_MOBILITY_STATE_STATIONARY
: चल नहीं रहा है
अगर डिवाइस एक ही जगह पर रखा गया है, तो Android फ़्रेमवर्क, पीएनओ स्कैन के बीच के इंटरवल को 60 सेकंड से बढ़ाकर 180 सेकंड कर देता है, ताकि बैटरी की खपत कम हो. यह ऑप्टिमाइज़ेशन इस आधार पर किया जाता है कि जब डिवाइस एक जगह पर होता है, तब PNO स्कैन में उसे कोई नया नेटवर्क नहीं मिलता.
अगर डिवाइस किसी अन्य मोबिलिटी स्टेट में है या इस तरीके को कॉल नहीं किया गया है, तो डिवाइस डिफ़ॉल्ट PNO स्कैनिंग के तरीके का इस्तेमाल करता है.
लागू करना
Android 10 या इसके बाद के वर्शन पर काम करने वाले डिवाइस पर, बैटरी की खपत कम करने वाली इस सुविधा को लागू करने के लिए, डिवाइस की जगह बदलने की जानकारी पाएं. इसके बाद, कस्टम सिस्टम ऐप्लिकेशन से setDeviceMobilityState()
तरीके को कॉल करें.