הסתר הודעה מתמשכת עבור אפליקציות רקע ושכבות-על ב-Android O

מדריך להסתרת ההתראה המתמשכת ב-Android O שמציגה מתי אפליקציית רקע פועלת או מתי מוצגת שכבת-על.

עדכון 8/25/17: מדריך זה מיושן כעת, מכיוון שגוגל תיקנה את השיטה שבה אנו משתמשים כדי להסתיר את ההודעה המתמשכת ברקע. עם זאת, גילינו עוד פתרון לבעיה זו וכתבנו עליה מדריך קצר תוכל למצוא כאן.

Android O מחפשת להביא שיפורים משמעותיים למערכת ההפעלה אנדרואיד שכולנו מכירים ואוהבים. מצב תמונה בתוך תמונה עבור טלפונים, ערוצי התראות, בחירת טקסט חכמה, שירותי מילוי אוטומטי, ומתחת למכסה המנוע שינויים רבים רבים כדי לשפר את חיי הסוללה, הביצועים והאבטחה שלך. תכונה אחת שאמורה לעזור למשתמשים לפתור בעיות בחיי הסוללה והביצועים היא מגבלות תהליכי רקע. בלי להיכנס יותר מדי לפרטים, לא ניתן עוד להעיר אפליקציות ב-Android O מהרשומות במניפסט שלהן מקלטי שידור מרומזים והם כבר לא יכולים להפעיל שירותי רקע מבלי לעבור Job Scheduler. אם אפליקציה רוצה להפעיל שירות רקע, עליה לספר למשתמש במפורש שהיא עושה זאת על ידי פרסום הודעה. עם זאת, כאשר אפליקציה פועלת ברקע, אנדרואיד O כעת, לכאורה, פועלת אַחֵר התראה מתמשכת שמספרת לך אילו אפליקציות פועלות. זה קורה גם כאשר אפליקציה עם ה

SYSTEM_ALERT_WINDOW הרשאה (כגון הפופולרי דמדומים app) מציג כעת שכבת-על.

התראה מתמשכת של Android O עבור אפליקציות רקע ושכבות-על. קרדיטים: בן שון \\ 9to5Google

למרות שהודעות אלו ממוזערות כברירת מחדל, לא ניתן לבטל אותן על ידי המשתמש או לחסום אותן לצמיתות בהגדרות. התנהגות זו מעצבנת מאוד משתמשים רבים, ואני מאוד מקווה שגוגל תיתן לנו דרך להשבית את ההתראה הזו במהדורה הסופית של Android O/Android 8.0. עם זאת, אם הם לא, שם הוא עדיין דרך הסתר לצמיתות את התראת אפליקציות הרקע המתמשכת. אציג כיצד לעשות זאת במדריך שלב אחר שלב, ולאחר מכן הסבר כיצד זה עובד וכן אזהרות חשובות.


דרישות:

  • אנדרואיד O
  1. התקן את מנהלי ההתקן של ה-USB עבור הטלפון הספציפי שלך אם אתה משתמש ב-Windows (ניתן למצוא אותם כאן).
  2. הורד את ADB בינארי עבור מערכת ההפעלה הספציפית שלך (חלונות, מק, לינוקס). קישורים אלו תמיד יצביעו על הגרסה העדכנית ביותר של הבינארי, כך שלא תצטרך לסרוק את הרשת בחיפוש אחר הגרסה העדכנית ביותר.
  3. חלץ את התוכן של קובץ ה-ZIP שהורדת לתיקיה נגישה בקלות במחשב האישי שלך (כגון בתיקיית ההורדות).
  4. עבור לאפליקציית ההגדרות בטלפון שלך והקש על האפשרות "אודות הטלפון".
  5. מצא את מספר הבנייה והקש עליו 7 פעמים כדי להפעיל את מצב מפתחים. תראה חלון קופץ ברגע שהוא יופעל.
  6. חזור לתפריט הראשי של הגדרות והיכנס לאפשרויות מפתחים כדי שתוכל להפעיל את מצב ניפוי באגים USB.
  7. חבר את הטלפון שלך למחשב והחלק מטה את לוח ההתראות כדי לשנות את מצב ה-USB ממצב "טעינה בלבד" למצב "העברת קבצים (MTP)". ייתכן שזה לא נחוץ עבור הטלפון שלך.
  8. במחשב שלך, דפדף אל הספרייה שבה חילצת את ה-ADB הבינארי.
  9. הפעל שורת פקודה/מסוף בספריית ADB זו. עבור משתמשי Windows, ניתן לעשות זאת על ידי Shift+לחיצה ימנית ואז בחירה באפשרות "פתח שורת הפקודה כאן".
  10. ברגע שאתה בסביבת שורת הפקודה או המסוף, הזן את הפקודה הבאה: adb devices
  11. זה יתחיל את הדמון ADB. אם זו הפעם הראשונה שאתה מפעיל את ADB, תראה גם הנחיה בטלפון שלך המבקשת ממך לאשר חיבור.
  12. כעת הפעל מחדש את פקודת adb devices משלב 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

איך זה עובד

באמצעות ממשק שורת הפקודה הנסתר עבור App Ops, מערכת ניהול ההרשאות הפונה למשתמש של אנדרואיד, אנו יכולים להגביל את הרשאת POST_NOTIFICATION מחבילת "android". (הערה: אנו מגדירים את זה ל"התעלם" במקום ל"הכחשה" מכיוון ש"הכחשה" עלול לגרום לשגיאות מסוימות.) מצאתי הרשאה זו על ידי הסתכלות בקוד המקור הרלוונטי עבור AppOpsManager, שמפרטת את כל ההרשאות האפשריות שניתן להעניק/לבטל, שרבות מהן אינן נגישות בהגדרות אנדרואיד. חבילת "אנדרואיד" מתייחסת למעשה ל"מערכת אנדרואיד" AKA framework-res.apk, אשר אחראית על ההתראה המתמשכת שאנו מנסים להיפטר ממנה.

בעצם שלילת הרשאת POST_NOTIFICATION של מערכת אנדרואיד, היא כבר לא יכולה להציג הודעה! נשמע די פשוט, נכון? למרבה הצער, יש אזהרה שצריך להיות מודעים אליה. "מערכת אנדרואיד" אחראית ליותר מהתראה זו בלבד, כך שכל הודעות אחרות שהיא עשויה לפרסם לא יוצגו עוד. זה יכול לכלול את הודעת מצב ה-USB (שעדיין ניתנת לשינוי דרך ההגדרה באפשרויות מפתחים) וכן כמה דברים אחרים.

למרות שזה צעד די דרסטי לנקוט בחלקנו, זו כרגע הדרך היחידה להסתיר את ההודעה הזו בנפרד מהשרשת הטלפון שלך ושינוי המסגרת עצמה, וזה כמובן משהו שלא הרבה משתמשים מוכנים או מסוגלים לעשות. אני מאוד מקווה שגוגל מציעה דרך להסתיר את ההודעה הזו במהדורה עתידית של Android O, או אפילו טוב יותר להסיר את ההודעה הזו לחלוטין. מובן שגוגל רוצה לשפר את חוויית המשתמש על ידי הודעה למשתמשים כאשר אפליקציה פועלת ברקע על כך המשתמש אולי לא מודע, אבל השיטה שהוא בחר מעצבנת עבור אלה מאיתנו שיודעים מה לגבי כל אפליקציה שאנחנו באמצעות.