攔截動作通知的由來
Android 8 其中一項新增省電「功能」,是對 App 更嚴格的背景執行限制,Google規定,所有符合Android 8要求 (正確地說是 target API 26 或以上)的App ,若要保持在背景運作,必須長期在通知欄顯示通知/ icon。該通知是屬於on-going類別,不能掃走。而 App 若不顯示通知,Android會在短時間內終止該背景運作[1]。
Google 的原意,是透過滋擾用戶,逼使 希望App 盡量減少在背景運作,以達至省電效果。為保持現有App 的兼容性,現時 App 可以暫時不符合此項要求,但無論如果必須在今年內升級至符合要求[2]。
攔截 App 因要保持在背景運作,因此無可避免要按規定顯示通知。「小鴨幹線」由 0.2.10 版起,改寫了通知部份以利用 Android 8 的新功能,因此亦按規定,在開啟攔截時在通知欄顯示通知 –
或許「小鴨幹線」0.2.10/11 是很多用戶所安裝的首隻、按 Android 8 有關規定而製作的背景App,發佈新版後,隨即收到了加入移除該通知選項的要求。
移除方法
(1) 隱藏小鴨的背景通知
首先,正如上述解釋,App要保持在背景運作,便無法自行移除通知,(否則 Google 滋擾用戶的「苦心」便無法落實) 。不過,用戶仍有方法自行隱藏通知。
第一步,用戶可在拉下通知攔後,長按通知,Android 便會出現小鴨的「攔截狀態」通知頻道的選項 –
此時,用戶可按右面的開關,關上選項,如下圖 –
於是你再不會收到這類通知了,大功告成⋯⋯無咁早, Google 哪會這樣輕易讓你不受滋擾呢,隱藏了小鴨的通知,系統便會發出另一通知,告知用戶小鴨在背景運作(以下為Android 8.1的通知,和Android 8.0的字眼稍為不同) 。注意這已經是「Android系統」而不是小鴨App的通知了。
(注意,上述系統通知指小鴨在耗用電量,實屬誤導,其實只是指小鴨背景服務開啟,但在沒有來電或其他事件觸發時並不會耗電。)
以下步驟,在 Android 8.0 及 Android 8.1 上完全不同,請按需要參看有關部份。
(2) Android 8.0: 「延後」系統的背景通知
在Android 8.0 之下,這個系統的背景通知無法直接隱藏,但仍有方法不顯示,就是利用 Android 的延後顯示通知功能(把通知向右掃,按時鐘icon),再加入很長的暫緩時間。但每當通知改變狀態後,便要重新延後,相當麻煩。
於是有人想到寫 App,利用 Android 的 Notification Listener 權限,自動為用戶延後有關的通知,有關 App 介紹,可參看以下 xda 文章 :
How to Hide the “App is Running in the Background” Persistent Notification on Android Oreo
(其實小鴨亦有利用該權限,原理亦很簡單,不過為免有朝一日,Google 視該手法為規避系統而將App下架,所以都是不在App內實行了。)
(3) Android 8.1: 隱藏系統的背景通知
可能是收到 Android 8.0 用戶的強烈意見,Google 在 Android 8.1 留有生路,用戶可再長按系統的通知,
然後以同一方法,關上這個「正在耗用電量程式」的系統頻道,那麼小鴨和其他背景工作的背景運作系統通知,便不會再出現。
若日後想回復通知,則須到系統的「應用程式通知」設定內,選擇「查看全部程式」,按右上角三點再選「顯示系統」,找出及選擇「Android系統」的項目,點擊「應用程式通知」,將「正在耗用電量的應用程式」一項開啟便可,相當簡易(!)。
註釋
[1] 見 https://developer.android.com/about/versions/oreo/background.html
[2] 見 https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html
在〈如何隱藏 Android 8 通知攔中,小鴨的「攔截動作開啟」通知〉中有 9 則留言
咁關左背景通知後,會否連攔截電話及更新資料庫都不再有顯示?
背景,攔截後通知及更新屬不同頻道,因此會視乎用戶選擇,而繼續顯示。
好似舊版android咁,只需要廣告來電時通知,是不是直接關閉跟“攔截狀態”就可以?
開啟已攔截電話通知便可(預設),可以關閉攔截狀態通知。
昨日部Nokia 7 plus update左 Ver. 2.22A後就不能欄截電話,有攔截電話紀錄,但電話正常打入,但不會自動掛斷,設定沒有改變,期待解決,謝謝
華為mate 9 ❨andriog8.0❩ 快樂使用中, 但轉到mate 10 ❨8.0❩ 就不能下載了⁉
盼能可重新下載, 感謝。
Mate10 EMUI 8會殺死背景工作,很可能失效,可以在此下載APK試試。
我用華為mate40pro, 正常安裝使用了多天,,但為何從來沒有提示攔截了什麼電話,程式入面也沒有任何攔截記錄,而我仍然間中聽到有廣告推銷電話,為什麼呢?好像沒有任何作用?我已看到小鴨app “攔住服務已開啟” 的後台信息,但完全冇攔截作用。你的程式應該要有所有攔截電話的記錄(如果沒有的話),謝謝!
正常攔截電話是有記錄的,不過華為很可能凍結背景程式所以攔截不到,試試有沒有方法將小鴨加入系統白名單,如 Settings > Battery > App Launch.