برنامج تعليمي حول إخفاء الإشعارات المستمرة في Android O والتي تظهر عند تشغيل تطبيق في الخلفية أو عند ظهور تراكب.
تحديث 25/8/17: أصبح هذا البرنامج التعليمي قديمًا الآن، نظرًا لأن Google قامت بتصحيح الطريقة التي نستخدمها لإخفاء الإشعارات المستمرة في الخلفية. ومع ذلك، فقد اكتشفنا حلاً آخر لهذه المشكلة وقمنا بكتابة برنامج تعليمي قصير حول هذا الموضوع يمكنك أن تجد هنا.
يتطلع Android O إلى إدخال تحسينات كبيرة على نظام التشغيل Android الذي نعرفه ونحبه جميعًا. وضع صورة داخل صورة للهواتف، وقنوات الإشعارات، واختيار النص الذكي، وخدمات الملء التلقائي، وتحت الغطاء العديد من التغييرات لتحسين عمر البطارية والأداء والأمان. إحدى الميزات التي من المفترض أن تساعد المستخدمين على حل المشكلات المتعلقة بعمر البطارية والأداء هي قيود العملية في الخلفية. دون الخوض في الكثير من التفاصيل، لم يعد من الممكن إيقاظ التطبيقات في Android O من بياناتها المسجلة أجهزة استقبال البث الضمنية ولم يعد بإمكانهم بدء خدمات الخلفية دون المرور بها JobScheduler. إذا أراد أحد التطبيقات بدء خدمة في الخلفية، فيجب أن يخبر المستخدم صراحةً أنه يفعل ذلك عن طريق نشر إشعار. ومع ذلك، عند تشغيل أحد التطبيقات في الخلفية، يبدو أن Android O يعمل الآن
آخر إشعار مستمر يخبرك بالتطبيقات قيد التشغيل. يحدث هذا أيضًا عندما يكون التطبيق ذو الامتداد SYSTEM_ALERT_WINDOW إذن (مثل الشعبية الشفق app) يعرض حاليًا تراكبًا.على الرغم من أن هذه الإشعارات يتم تصغيرها افتراضيًا، إلا أنه لا يمكن للمستخدم تجاهلها أو حظرها نهائيًا في الإعدادات. يعد هذا السلوك مزعجًا جدًا للعديد من المستخدمين، وآمل جديًا أن تقدم لنا Google طريقة لتعطيل هذا الإشعار في الإصدار النهائي من Android O/Android 8.0. ومع ذلك، إذا لم يفعلوا ذلك، هناك يكون لا تزال وسيلة ل إخفاء إشعارات تطبيقات الخلفية المستمرة بشكل دائم. سأعرض كيفية القيام بذلك في دليل خطوة بخطوة، متبوعًا بشرح لكيفية العمل بالإضافة إلى التحذيرات المهمة.
متطلبات:
- أندرويد أو
- قم بتثبيت برامج تشغيل USB لهاتفك المحدد إذا كنت تستخدم نظام التشغيل Windows (يمكن العثور عليها هنا).
- تحميل بنك التنمية الآسيوي ثنائي لنظام التشغيل الخاص بك (شبابيك, ماك, لينكس). ستشير هذه الروابط دائمًا إلى أحدث إصدار من البرنامج الثنائي، لذلك لا يتعين عليك البحث في الإنترنت عن الإصدار الأحدث.
- قم باستخراج محتويات ملف ZIP الذي قمت بتنزيله إلى مجلد يسهل الوصول إليه على جهاز الكمبيوتر الخاص بك (مثل مجلد التنزيلات).
- انتقل إلى تطبيق الإعدادات على هاتفك وانقر على خيار "حول الهاتف".
- ابحث عن رقم البنية واضغط عليه 7 مرات لتمكين وضع المطور. ستظهر لك نافذة منبثقة بمجرد تمكينها.
- ارجع إلى قائمة الإعدادات الرئيسية وأدخل خيارات المطور حتى تتمكن من تمكين وضع تصحيح أخطاء USB.
- قم بتوصيل هاتفك بالكمبيوتر واسحب لوحة الإشعارات لأسفل لتغيير وضع USB من وضع "الشحن فقط" إلى وضع "نقل الملفات (MTP)". قد لا يكون هذا ضروريًا لهاتفك.
- على جهاز الكمبيوتر الخاص بك، انتقل إلى الدليل الذي قمت باستخراج ملف ADB الثنائي منه.
- قم بتشغيل موجه الأوامر/المحطة الطرفية في دليل ADB هذا. بالنسبة لمستخدمي Windows، يمكن القيام بذلك عن طريق الضغط على Shift + النقر بزر الماوس الأيمن ثم تحديد خيار "فتح موجه الأوامر هنا".
- بمجرد أن تكون في موجه الأوامر أو البيئة الطرفية، أدخل الأمر التالي:
adb devices
- سيؤدي هذا إلى بدء البرنامج الخفي لـ ADB. إذا كانت هذه هي المرة الأولى التي تقوم فيها بتشغيل ADB، فسترى أيضًا مطالبة على هاتفك تطلب منك السماح بالاتصال.
- أعد الآن تشغيل الأمر adb devices من الخطوة 10، وسيقوم موجه الأوامر/المحطة الطرفية بطباعة الرقم التسلسلي لجهازك. إذا حدث ذلك، فأنت مستعد للمضي قدمًا. إذا لم يكن الأمر كذلك، فمن المحتمل أنه لم يتم تثبيت برامج تشغيل USB بشكل صحيح.
- ارجع إلى موجه الأوامر وأدخل الأمر التالي:
adb shell
- الآن قم بتنفيذ الأمر التالي:
cmd appops set android POST_NOTIFICATION ignore
- لن تحصل على رسالة نجاح أو أي شيء، ولكن طالما أنك لا ترى خطأ، فمن المفترض أن يعمل الأمر. الآن فقط أعد تشغيل هاتفك!
نعم، أدرك أن هذه صور لشاشة الهاتف وليست لقطات شاشة. ليس لدي جهاز متوافق مع Android O بنفسي، لذا طلبت من TK أن يرسل لي صورًا.
- إذا كنت تريد التراجع عن هذا الأمر، فأدخل هذا في موجه الأوامر:
cmd appops set android POST_NOTIFICATION allow
كيف تعمل
باستخدام واجهة سطر الأوامر المخفية لـ App Ops، نظام إدارة الأذونات الذي يواجه المستخدم في Android، يمكننا تقييد إذن POST_NOTIFICATION من حزمة "android". (ملاحظة: نقوم بتعيينه على "تجاهل" بدلاً من "رفض" لأن "رفض" قد يسبب بعض الأخطاء.) لقد وجدت هذا الإذن من خلال النظر في التعليمات البرمجية المصدر ذات الصلة لـ AppOpsManager، والذي يسرد جميع الأذونات المحتملة التي يمكن منحها/إبطالها، والتي لا يمكن الوصول إلى الكثير منها في إعدادات Android. تشير حزمة "android" في الواقع إلى "Android System" AKA Framework-res.apk، وهو المسؤول عن الإشعارات المستمرة التي نحاول التخلص منها.
من خلال إلغاء إذن POST_NOTIFICATION لنظام Android بشكل أساسي، لم يعد بإمكانه عرض إشعار! يبدو بسيطا جدا، أليس كذلك؟ لسوء الحظ، هناك تحذير يجب أن تكون على علم به. "نظام Android" مسؤول عن أكثر من مجرد هذا الإشعار، لذلك لن يتم عرض أي إشعارات أخرى قد ينشرها بعد الآن. يمكن أن يتضمن ذلك إشعار وضع USB (والذي لا يزال من الممكن تغييره من خلال الإعداد في خيارات المطور) بالإضافة إلى بعض الأشياء الأخرى.
على الرغم من أن هذا إجراء صارم جدًا يجب أن نتخذه من جانبنا، إلا أنه حاليًا الطريقة الوحيدة لإخفاء هذا الإشعار بعيدًا من تأصيل هاتفك وتعديل إطار العمل نفسه وهو أمر من الواضح أنه لا يرغب فيه أو يستطيعه الكثير من المستخدمين لكى يفعل. آمل مخلصًا أن توفر Google طريقة لإخفاء هذا الإشعار في إصدار مستقبلي من Android O، أو حتى إزالة هذا الإشعار بالكامل بشكل أفضل. تريد Google بشكل مفهوم تحسين تجربة المستخدم من خلال إعلام المستخدمين عند تشغيل التطبيق في الخلفية قد لا يكون المستخدم على علم بذلك، لكن الطريقة التي اختارها مزعجة لمن يعرف ماذا عن كل تطبيق نحن عليه استخدام.