Nexus 5のAndroid 6.0アップデート以降、「WiFiネットワークにサインイン」という通知を受け取るたびに、電話が振動します。通話、SMS、WhatsAppメッセージなどの振動を維持しながらこれをオフにできるアイデアはありますか?
Nexus 5のAndroid 6.0アップデート以降、「WiFiネットワークにサインイン」という通知を受け取るたびに、電話が振動します。通話、SMS、WhatsAppメッセージなどの振動を維持しながらこれをオフにできるアイデアはありますか?
回答:
関連する回避策はありませんディスターブの優先唯一のモードが。
簡単に言えば、システムのデフォルト設定を上書きできる通知アラートのアプリごとの設定があるため、(クイック設定 -邪魔しないで)優先度のみを使用する必要があります。優先のみモードでは、引き続きすべての通知が表示されます。ただし、優先度の高い通知(音、振動、LEDライト)のみがアラートされます。
考え方は、Androidシステムアプリの下にあるキャプティブポータル通知を除くすべての通知を優先として処理することです(設定-サウンドと通知-アプリ通知-[アプリ名]から)。デフォルトでは、システムアプリは表示されませんオーバーフローメニューから[ システムを表示] にチェックマークを付ける必要があります。このアプリは優先度なしのままにしてください。残りのシステムアプリについては忘れないでください。
ただし、この回避策を使用する前に最初に考慮すべきいくつかの欠点があります。
TL; DR
あなたはまだすべての通知に振動を持つようにしたい場合はキャプティブポータル(この特定の問題)を除き、私は怖いあなたがすることはできません。
それはようだコメントで述べたdbasch振動(実際には、通知することを、警告自体は)マシュマロで追加されました。
既にお気づきのように、WiFiがキャプティブポータルにログインする必要があることをAndroidが検出すると、通知が作成されます。これはのsetProvNotificationVisibleIntent()
関数によって行われますConnectivityService
。
ネットワークプロビジョニング通知を表示または非表示にします。
通知は、ネットワークにサインインが必要であることを通知する(
NotificationType.SIGN_IN
)、またはネットワークにインターネットアクセスがないことを通知する()の2つの目的で使用しますNotificationType.NO_INTERNET
。IDごとに最大1つの通知を表示するため、特定のネットワークでは、最近要求された通知タイプを表示できます。したがって、たとえば、キャプティブポータルが接続後数秒以内に応答しない場合、最初にを表示しNO_INTERNET
、次にキャプティブポータルのチェックが完了するとdisplayを表示しますSIGN_IN
。
Android 6.0 Marshmallowで使用される通知アラートに関連するコード:
Notification notification = new Notification.Builder(mContext)
...
.setDefaults(Notification.DEFAULT_ALL)
...
Notification.DEFAULT_ALL
「すべてのデフォルト値(該当する場合)を使用する」ことに注意してください。これは、システムの通知設定(音、振動、LEDライト)に依存することを意味します。
Android 5.x Lollipopのコードと比較すると、コードは次のとおりです。
Notification notification = new Notification();
...
これ以上でもそれ以下でもありません。それは関連するコードです。new Notification()
「デフォルト値でオブジェクトを構築Notification
します」。意味に変更はないようですがdefaults
、Notification.DEFAULT_ALL
(値:-1)に設定/初期化されていない ことに注意してください。代わりに、初期化がないため、デフォルトで0に設定されますが、これはアラートではありません。
それがマシュマロで修正されたグーグルによって見落とされたバグであるかどうか、私は知りません。また、これがAndroid Lollipopにアラートが表示されない理由ですが、Android Marshmallowには現在表示されています。
その厄介な振動を取り除くために私が見つけた唯一の方法は、「利用可能なwifi」通知を完全に無効にすることです。それを行うには、設定に移動-> wifi-> 3つの縦のドットをタップ->「詳細設定」に移動し、一般にアクセス可能なwifiネットワークの通知を無効にします。修正を待って、それが唯一の解決策であり、それらを無効にすることはそれほど悪くないことだと思います。
その通知はAndroidシステム(android
)によって開始されます。appopsを使用して、Androidシステムがどのような状況でもデバイスを振動させる許可を拒否できます。PCでadbをセットアップした場合は、次を実行します。
adb shell appops set android VIBRATE deny
インターネットにアクセスできないWi-Fiに接続してみてください。それでも通知はありますが、振動はありません。その通知も非表示にする場合は、ここまたはこのWebサイトに投稿されている残りの回答に従うことができます。
変更を元に戻すには、次のようにします。
adb shell appops set android VIBRATE allow
呼び出しのバイブレーションはダイヤラーアプリによって開始されます。SMSの場合はデフォルトのSMSアプリになります。WhatsAppメッセージの場合は同じアプリなので、影響を受けません。私が知らないそのコマンドの予期しない結果があるかもしれないので、コメントを通してそれらについて知らせてください。
注: このソリューションは、非公式のCM13ビルドでテストされています。