Отключите вибрацию для уведомления «Вход в сеть WiFi»

17

С момента обновления Android 6.0 на Nexus 5, каждый раз, когда я получаю уведомление «Войти в сеть WiFi», телефон вибрирует. Любая идея, где я могу отключить это, сохраняя при этом вибрации для звонков, SMS, сообщений WhatsApp и т. Д.?

Ritz
источник
4
Я страдаю с точно такой же проблемой. Я много искал, и это, кажется, новая проблема с v6.0. Очень, очень раздражает.
dbasch
1
Ни одно из предложенных ниже исправлений не работает для меня. Я использую режим Приоритет по назначению (например, когда я занят или сплю); Я не хочу, чтобы мой телефон постоянно находился в режиме приоритета. И ни одно из других исправлений, похоже, на самом деле не работает (и ответ Эндрю Т, кажется, указывает, почему). Есть ли исправление для рута с рутированными акциями? Вовлечение Xposed модуля? Будет ли это исправлено в более поздних версиях Android?
Znt

Ответы:

6

Существует обходной путь, включающий режим « Не беспокоить только приоритет ».

Проще говоря, вы должны использовать только Приоритет (из Быстрых настроек - Не беспокоить ), поскольку он имеет настройку для каждого приложения для уведомлений, которые могут перезаписывать настройки системы по умолчанию. В режиме «только приоритет» все уведомления будут отображаться. Тем не менее, только приоритетные уведомления будут предупреждены (звук, вибрация и светодиод).

Идея состоит в том, чтобы обрабатывать все уведомления как приоритетные (из меню «Настройки» - «Звук и уведомления» - «Уведомления приложений» - [имя приложения] - «Рассматривать как приоритетные»), за исключением уведомлений на встроенном портале, которые находятся в приложении Android System (по умолчанию системные приложения не указаны в списке). Вам нужно поставить галочку Показывать систему из меню переполнения. Оставьте это приложение неприоритетным, но не забывайте об остальных системных приложениях).

Однако, есть некоторые недостатки, которые вы могли бы рассмотреть прежде, чем использовать этот обходной путь:

  1. Вы жертвуете предполагаемое использование режима «Только приоритет», оставляя только «Полная тишина» в качестве единственной опции (однако, если вы никогда не намереваетесь использовать эту функцию, вам повезло, поскольку вы можете ее использовать).
  2. Если у вас установлено много приложений, довольно утомительно настроить все приложения для обработки их уведомлений в качестве приоритета (возможно, скрипт может помочь ...). Кроме того, каждый раз, когда вы устанавливаете новое приложение, вы не должны забывать рассматривать его уведомление как приоритетное (если вы не заботитесь о его предупреждении).
  3. Вы не будете получать оповещения для всех уведомлений из системы Android (вам нужно поэкспериментировать с этим, поскольку я не знаю, какие уведомления рассматриваются системой Android).
Андрей Т.
источник
5

TL; DR

Если вы все еще хотите, чтобы на всех уведомлениях, кроме встроенного портала (эта конкретная проблема) , была вибрация , боюсь, вы не сможете .

Это как dbasch упоминалось в комментариях , что вибрация ( на самом деле, уведомление предупреждение само по себе) был добавлен в Зефир.


Технические детали

Когда Android обнаружит, что WiFi должен войти в портал, как вы уже заметили, он создаст уведомление. Это сделано setProvNotificationVisibleIntent()функцией в ConnectivityService.

Показать или скрыть уведомления о предоставлении сети.

Мы используем уведомления в двух целях: для уведомления о том, что сеть требует входа ( NotificationType.SIGN_IN), или для уведомления о том, что сеть не имеет доступа к Интернету ( NotificationType.NO_INTERNET). Мы отображаем не более одного уведомления на каждый идентификатор, поэтому в конкретной сети мы можем отображать тип уведомления, который был запрошен последним. Так, например, если портал в нерешенном состоянии не отвечает в течение нескольких секунд после подключения, мы можем сначала отобразить NO_INTERNET, а затем, когда завершится проверка портала, - отобразить SIGN_IN.

Соответствующий код для уведомления уведомления, который используется в Android 6.0 Marshmallow :

Notification notification = new Notification.Builder(mContext)
    ...
    .setDefaults(Notification.DEFAULT_ALL)
    ...

Обратите внимание, что « Notification.DEFAULT_ALLбудут использоваться все значения по умолчанию (где применимо) », что означает, что это зависит от настроек уведомлений вашей системы (звук, вибрация и светодиодный индикатор).

По сравнению с Android 5.x Lollipop код выглядит так:

Notification notification = new Notification();
...

Ни больше ни меньше. Это соответствующий код. new Notification()" построит Notificationобъект со значениями по умолчанию ". Хотя кажется, что значение не изменилось, обратите внимание, что defaultsоно не установлено / не инициализировано Notification.DEFAULT_ALL(значение: -1). Вместо этого, поскольку инициализация отсутствует, по умолчанию будет 0, что не является предупреждением .

Является ли это ошибкой, пропущенной Google, которая была исправлена ​​в «Зефире» или нет, я не знаю. Кроме того, по этой причине в Android Lollipop нет оповещений, а в Android Marshmallow есть.

Андрей Т.
источник
«Вы не можете». Бьюсь об заклад, вы можете с модулем Xposed (или хотя бы предварительное чтение заставляет меня думать об этом), хотя, возможно, придется написать это самому ...
znt
1

Единственный способ избавиться от этой надоедливой вибрации - полностью отключить уведомление о «доступном Wi-Fi». Для этого перейдите в настройки-> Wi-Fi -> нажмите на три вертикальные точки -> перейдите в «Расширенные настройки» и отключите уведомления для общедоступных сетей Wi-Fi. В ожидании исправления, я думаю, что это единственное решение, и не так уж и плохо потеря их отключения, я всегда думал, что они достаточно бесполезны.


источник
3
Спасибо за Ваш ответ. Это, похоже, не работает, но все равно отображает уведомление и вибрирует даже после отключения опции «Сетевое уведомление».
Ritz
1
Это исправление не работает на моем Nexus 5 либо.
dbasch
Я попробовал это на моем Moto X Pure, и там тоже не работает.
Нат Кун
Ни на моём мото E второго поколения
Энди Кларк
1

Настройки> Приложения> Службы подключения к Google> Уведомления> Блокировка полностью их отключает.

stopsatgreen
источник
Спасибо (при условии, что это работает)! Теперь мне просто нужен способ запомнить, что я заблокировал это, когда они это исправят ...
Nat Kuhn
К сожалению, это предположение было неверным ... не работает на моем Moto X Pure
Nat Kuhn
0

Это уведомление инициируется системой Android ( android). Вы можете использовать appops для отказа Android System в разрешении вибрировать устройство в любой ситуации. При условии, что вы настроили на ПК, выполните:

adb shell appops set android VIBRATE deny

Попробуйте подключиться к Wi-Fi без доступа к Интернету. Вы все равно получите это уведомление, но без вибрации. Если вы также намереваетесь скрыть это уведомление, вы можете следовать остальным ответам, размещенным здесь или на этом веб-сайте.

Чтобы отменить изменения, выполните:

adb shell appops set android VIBRATE allow

Вибрация для вызова инициируется приложением Dialer, для SMS это будет приложение по умолчанию для SMS, для сообщений WhatsApp - это то же самое приложение, поэтому они не будут затронуты. У этой команды могут быть непредвиденные последствия, о которых я не знаю, поэтому дайте мне знать о них в комментариях.

Примечание: это решение протестировано на неофициальной сборке CM13.

Повелитель огня
источник