Android O में बैकग्राउंड ऐप्स और ओवरले के लिए लगातार अधिसूचना छुपाएं

एंड्रॉइड O में लगातार अधिसूचना को छिपाने पर ट्यूटोरियल जो दिखाता है कि पृष्ठभूमि ऐप कब चल रहा है या ओवरले कब दिख रहा है।

अद्यतन 8/25/17: यह ट्यूटोरियल अब अप्रचलित है, क्योंकि Google ने उस विधि को पैच कर दिया है जिसका उपयोग हम पृष्ठभूमि में लगातार अधिसूचना को छिपाने के लिए कर रहे हैं। हालाँकि, हमने इस समस्या का एक और समाधान खोजा है और इस पर एक संक्षिप्त ट्यूटोरियल लिखा है आप यहां पा सकते हैं.

Android O उस Android OS में प्रमुख संवर्द्धन लाने पर विचार कर रहा है जिसे हम सभी जानते हैं और पसंद करते हैं। फोन के लिए पिक्चर-इन-पिक्चर मोड, अधिसूचना चैनल, स्मार्ट टेक्स्ट चयन, ऑटोफिल सेवाएं और आपकी बैटरी जीवन, प्रदर्शन और सुरक्षा को बढ़ाने के लिए कई बदलाव। एक सुविधा जो उपयोगकर्ताओं को बैटरी जीवन और प्रदर्शन के मुद्दों को सुलझाने में मदद करने वाली है, वह है पृष्ठभूमि प्रक्रिया सीमाएं। बहुत अधिक विवरण में जाए बिना, Android O में ऐप्स को अब उनके मेनिफेस्ट-रजिस्टर्ड से सक्रिय नहीं किया जा सकता है अंतर्निहित प्रसारण रिसीवर और वे अब बिना देखे पृष्ठभूमि सेवाएँ प्रारंभ नहीं कर सकते हैं नौकरी अनुसूचक. यदि कोई ऐप पृष्ठभूमि सेवा शुरू करना चाहता है, तो उसे एक अधिसूचना पोस्ट करके उपयोगकर्ता को स्पष्ट रूप से बताना होगा कि वह ऐसा कर रहा है। हालाँकि, जब कोई ऐप बैकग्राउंड में चल रहा होता है, तो Android O अब काम करने लगता है 

एक और लगातार अधिसूचना आपको बताती है कि कौन से ऐप्स चल रहे हैं। ऐसा तब भी होता है जब कोई ऐप सिस्टम_अलर्ट_विंडो अनुमति (जैसे लोकप्रिय सांझ ऐप) वर्तमान में एक ओवरले प्रदर्शित कर रहा है।

बैकग्राउंड और ओवरले ऐप्स के लिए Android O लगातार अधिसूचना। श्रेय: बेन शून \\ 9to5Google

हालाँकि इन सूचनाओं को डिफ़ॉल्ट रूप से छोटा कर दिया जाता है, लेकिन उन्हें उपयोगकर्ता द्वारा ख़ारिज नहीं किया जा सकता है या सेटिंग्स में स्थायी रूप से अवरुद्ध नहीं किया जा सकता है। यह व्यवहार कई उपयोगकर्ताओं के लिए बहुत कष्टप्रद है, और मैं गंभीरता से आशा करता हूं कि Google हमें अंतिम Android O/Android 8.0 रिलीज़ में इस अधिसूचना को अक्षम करने का एक तरीका देगा। हालाँकि, यदि वे ऐसा नहीं करते हैं, तो वहाँ है अभी भी एक रास्ता है लगातार पृष्ठभूमि ऐप्स अधिसूचना को स्थायी रूप से छुपाएं. मैं चरण-दर-चरण मार्गदर्शिका में यह दिखाऊंगा कि ऐसा कैसे करना है, इसके बाद यह कैसे काम करता है इसकी व्याख्या के साथ-साथ महत्वपूर्ण चेतावनियां भी दी जाएंगी।


आवश्यकताएं:

  • एंड्रॉइड ओ
  1. यदि आप विंडोज़ पर हैं तो अपने विशेष फोन के लिए यूएसबी ड्राइवर स्थापित करें (वे पाए जा सकते हैं)। यहाँ).
  2. डाउनलोड करें एडीबी बाइनरी आपके विशेष ऑपरेटिंग सिस्टम के लिए (खिड़कियाँ, मैक, लिनक्स). ये लिंक हमेशा बाइनरी के नवीनतम संस्करण की ओर संकेत करेंगे, इसलिए आपको नवीनतम की तलाश में नेट पर भटकना नहीं पड़ेगा।
  3. आपके द्वारा डाउनलोड की गई ज़िप फ़ाइल की सामग्री को अपने पीसी पर आसानी से पहुंच योग्य फ़ोल्डर में निकालें (जैसे कि डाउनलोड फ़ोल्डर में)।
  4. अपने फोन के सेटिंग ऐप पर जाएं और "अबाउट फोन" विकल्प पर टैप करें।
  5. बिल्ड नंबर ढूंढें और डेवलपर मोड सक्षम करने के लिए उस पर 7 बार टैप करें। इसके सक्षम होते ही आपको एक पॉपअप दिखाई देगा।
  6. सेटिंग्स मुख्य मेनू पर वापस जाएं और डेवलपर विकल्प दर्ज करें ताकि आप यूएसबी डिबगिंग मोड को सक्षम कर सकें।
  7. अपने फोन को पीसी में प्लग करें और यूएसबी मोड को "केवल चार्ज" से "फाइल ट्रांसफर (एमटीपी)" मोड में बदलने के लिए अपने नोटिफिकेशन पैनल को नीचे की ओर स्वाइप करें। यह आपके फ़ोन के लिए आवश्यक नहीं हो सकता है.
  8. अपने पीसी पर, उस निर्देशिका को ब्राउज़ करें जहां आपने एडीबी बाइनरी निकाली थी।
  9. इस ADB निर्देशिका में एक कमांड प्रॉम्प्ट/टर्मिनल लॉन्च करें। विंडोज़ उपयोगकर्ताओं के लिए, यह Shift+राइट-क्लिक द्वारा किया जा सकता है और फिर "यहां कमांड प्रॉम्प्ट खोलें" विकल्प का चयन किया जा सकता है।
  10. एक बार जब आप कमांड प्रॉम्प्ट या टर्मिनल वातावरण में हों, तो निम्न कमांड दर्ज करें: adb devices
  11. यह ADB डेमॉन प्रारंभ करेगा. यदि आप पहली बार एडीबी चला रहे हैं, तो आपको अपने फोन पर एक कनेक्शन को अधिकृत करने के लिए एक संकेत भी दिखाई देगा।
  12. अब चरण 10 से एडीबी डिवाइस कमांड को दोबारा चलाएं, और कमांड प्रॉम्प्ट/टर्मिनल आपके डिवाइस का सीरियल नंबर प्रिंट करेगा। यदि ऐसा होता है, तो आप आगे बढ़ने के लिए तैयार हैं। यदि नहीं, तो संभवतः USB ड्राइवर ठीक से स्थापित नहीं हैं।
  13. कमांड प्रॉम्प्ट पर वापस जाएँ और निम्नलिखित कमांड दर्ज करें: adb shell
  14. अब निम्नलिखित कमांड निष्पादित करें: cmd appops set android POST_NOTIFICATION ignore
  15. आपको सफलता संदेश या कुछ भी नहीं मिलेगा, लेकिन जब तक आपको कोई त्रुटि दिखाई नहीं देती तब तक इसे काम करना चाहिए था। अब बस अपने फ़ोन को रीबूट करें!

    हाँ, मुझे एहसास हुआ कि ये स्क्रीनशॉट के बजाय फ़ोन स्क्रीन की तस्वीरें हैं। मेरे पास स्वयं Android O संगत डिवाइस नहीं है, इसलिए मैंने TK से मुझे चित्र भेजने के लिए कहा।

  16. यदि आप इस कमांड को वापस लाना चाहते हैं, तो इसे कमांड प्रॉम्प्ट में दर्ज करें: cmd appops set android POST_NOTIFICATION allow

यह काम किस प्रकार करता है

एंड्रॉइड के उपयोगकर्ता-सामना अनुमति प्रबंधन प्रणाली, ऐप ऑप्स के लिए छिपे हुए कमांड लाइन इंटरफ़ेस का उपयोग करके, हम "एंड्रॉइड" पैकेज से POST_NOTIFICATION अनुमति को प्रतिबंधित करने में सक्षम हैं। (ध्यान दें: हम इसे "अस्वीकार" के बजाय "अनदेखा" पर सेट कर रहे हैं क्योंकि "अस्वीकार" कुछ त्रुटियों का कारण बन सकता है।) मुझे यह अनुमति इसके लिए प्रासंगिक स्रोत कोड को देखकर मिली। ऐपऑप्स मैनेजर, जो उन सभी संभावित अनुमतियों को सूचीबद्ध करता है जिन्हें दी/निरस्त किया जा सकता है, जिनमें से कई एंड्रॉइड सेटिंग्स में पहुंच योग्य नहीं हैं। "एंड्रॉइड" पैकेज वास्तव में "एंड्रॉइड सिस्टम" उर्फ़ फ्रेमवर्क-रेस.एपीके को संदर्भित करता है, जो लगातार अधिसूचना के लिए जिम्मेदार है जिससे हम छुटकारा पाने की कोशिश कर रहे हैं।

एंड्रॉइड सिस्टम की POST_NOTIFICATION अनुमति को अनिवार्य रूप से रद्द करके, यह अब कोई अधिसूचना नहीं दिखा सकता है! बहुत सरल लगता है, है ना? दुर्भाग्य से, सावधान रहने के लिए एक चेतावनी है। "एंड्रॉइड सिस्टम" इस अधिसूचना से कहीं अधिक के लिए ज़िम्मेदार है, इसलिए इसके द्वारा पोस्ट की जाने वाली कोई भी अन्य अधिसूचना अब नहीं दिखाई जाएगी। इसमें यूएसबी मोड अधिसूचना (जिसे अभी भी डेवलपर विकल्पों में सेटिंग के माध्यम से बदला जा सकता है) के साथ-साथ कुछ अन्य चीजें भी शामिल हो सकती हैं।

हालाँकि यह हमारी ओर से उठाया गया एक बहुत ही कठोर उपाय है, वर्तमान में इस अधिसूचना को छिपाने का यही एकमात्र तरीका है अपने फ़ोन को रूट करने से लेकर फ़्रेमवर्क को संशोधित करने तक, जो स्पष्ट रूप से कुछ ऐसा है जिसे बहुत से उपयोगकर्ता इच्छुक या सक्षम नहीं हैं करने के लिए। मुझे पूरी उम्मीद है कि Google Android O के भविष्य के रिलीज़ में इस अधिसूचना को छिपाने का एक तरीका प्रदान करेगा, या इससे भी बेहतर होगा कि इस अधिसूचना को पूरी तरह से हटा दिया जाए। जब कोई ऐप पृष्ठभूमि में चल रहा हो तो Google उपयोगकर्ताओं को सूचित करके उपयोगकर्ता अनुभव को बेहतर बनाना चाहता है उपयोगकर्ता को इसके बारे में जानकारी नहीं हो सकती है, लेकिन उन्होंने जो तरीका चुना है वह हममें से उन लोगों के लिए कष्टप्रद है जो जानते हैं कि हम प्रत्येक ऐप के बारे में क्या जानते हैं का उपयोग कर रहे हैं।