自從Nexus 5上的Android 6.0更新以來,每次我收到“登錄WiFi網絡”通知時,手機都會振動。有什麼想法可以在保持通話,短信,WhatsApp消息等振動的同時關閉該功能嗎?
自從Nexus 5上的Android 6.0更新以來,每次我收到“登錄WiFi網絡”通知時,手機都會振動。有什麼想法可以在保持通話,短信,WhatsApp消息等振動的同時關閉該功能嗎?
有一種解決方法涉及請勿打擾僅優先級模式。
簡單地說,您必須使用僅優先級(來自 快速設置-請勿打擾),因為它具有針對通知警報的按應用設置,可以覆蓋系統的默認設置。僅優先級模式仍將顯示所有通知。但是,只會發出優先通知(聲音,振動和LED指示燈)。
該想法是將所有通知作為優先處理(來自 Settings-Sound &通知-應用通知-[應用名稱]-視為優先),但強制門戶通知除外,該通知位於 Android系統應用下(默認情況下,系統應用未列出。您需要勾選從溢出菜單中顯示系統。將此應用設置為非優先級,但不要忘記其餘的系統應用。)
但是,您可能會有一些缺點使用此替代方法之前,請先考慮以下問題:
TL; DR
如果您仍然希望對所有通知保持振奮,除了強制門戶網站(此特定問題) 怕您做不到。
就像評論中提到的 dbasch一樣,振動(實際上是通知警報本身)已添加到棉花糖中。
當Android如您已經註意到的那樣檢測到WiFi需要登錄到強制門戶時,它將創建一個通知。這是通過 ConnectivityService
中的 setProvNotificationVisibleIntent()
函數完成的。
顯示或隱藏網絡設置通知。
我們使用通知有兩個目的:通知網絡需要登錄(
NotificationType.SIGN_IN
),或通知網絡無法訪問Internet(NotificationType.NO_INTERNET
)。我們每個ID最多顯示一個通知,因此在特定網絡上,我們可以顯示最近請求的通知類型。因此,例如,如果強制門戶在連接後幾秒鐘內未能答复,我們可能會首先顯示NO_INTERNET
,然後在強制門戶檢查完成後,顯示SIGN_IN
。 / p>
Android 6.0棉花糖中使用的通知警報的相關代碼:
Notification notification = new Notification.Builder( mContext)... .setDefaults(Notification.DEFAULT_ALL)...
請注意, Notification.DEFAULT_ALL
將“ 使用所有默認值(如果適用)”,這意味著它取決於系統的通知設置(聲音,振動和LED指示燈)。
與 Android中的通知設置相比5.x Lollipop,代碼為:
Notification notification = new Notification(); ...
不多也不少。那是相關的代碼。 新Notification()
將“ 構造具有默認值的 Notification
對象”。雖然含義似乎沒有變化,但請注意,未將 defaults
設置/初始化為 Notification.DEFAULT_ALL
>(值:-1)。相反,由於沒有初始化,因此它將默認設置為0,即沒有警報。
無論是Google忽略的還是已在棉花糖中修復的錯誤,我不知道另外,這就是為什麼Android Lollipop中沒有警報,而現在Android Marshmallow中沒有警報的原因。
我發現擺脫煩人的振動的唯一方法是完全禁用“可用wifi”通知。為此,請轉到設置-> wifi->點擊三個垂直點->轉到“高級設置”,然後禁用可公開訪問的wifi網絡的通知。等待修復,我認為這是唯一的解決方案,並且禁用它們也沒有什麼大不了的,我一直認為它們沒有用。
“設置”>“應用”>“ Google連接服務”>“通知”>“阻止”將其完全關閉。
該通知由Android系統( android
)啟動。您可以在任何情況下使用appops拒絕Android System振動設備的權限。前提是您已經在PC中設置了 adb,請執行以下操作:
adb shell appops設置android VIBRATE拒絕
嘗試連接到沒有互聯網訪問的Wi-Fi。您仍然會收到該通知,但不會產生任何振動。如果您還打算隱藏該通知,則可以按照此處或在此網站上發布的其餘答案進行操作。
要恢復更改,請執行以下操作:
adb shell appops設置android VIBRATE allow
撥號振動由Dialer應用程序啟動,對於SMS而言,它將是您的默認SMS應用程序;對於WhatsApp消息而言,它將是同一應用程序,因此它們不會受到影響。我可能不知道該命令可能會有無法預料的後果,因此請通過註釋讓我知道它們。
注意:該解決方案已在非官方的CM13版本上進行了測試。