С момента обновления Android 6.0 на Nexus 5, каждый раз, когда я получаю уведомление «Войти в сеть WiFi», телефон вибрирует. Любая идея, где я могу отключить это, сохраняя при этом вибрации для звонков, SMS, сообщений WhatsApp и т. Д.?
С момента обновления Android 6.0 на Nexus 5, каждый раз, когда я получаю уведомление «Войти в сеть WiFi», телефон вибрирует. Любая идея, где я могу отключить это, сохраняя при этом вибрации для звонков, SMS, сообщений WhatsApp и т. Д.?
Ответы:
Существует обходной путь, включающий режим « Не беспокоить только приоритет ».
Проще говоря, вы должны использовать только Приоритет (из Быстрых настроек - Не беспокоить ), поскольку он имеет настройку для каждого приложения для уведомлений, которые могут перезаписывать настройки системы по умолчанию. В режиме «только приоритет» все уведомления будут отображаться. Тем не менее, только приоритетные уведомления будут предупреждены (звук, вибрация и светодиод).
Идея состоит в том, чтобы обрабатывать все уведомления как приоритетные (из меню «Настройки» - «Звук и уведомления» - «Уведомления приложений» - [имя приложения] - «Рассматривать как приоритетные»), за исключением уведомлений на встроенном портале, которые находятся в приложении Android System (по умолчанию системные приложения не указаны в списке). Вам нужно поставить галочку Показывать систему из меню переполнения. Оставьте это приложение неприоритетным, но не забывайте об остальных системных приложениях).
Однако, есть некоторые недостатки, которые вы могли бы рассмотреть прежде, чем использовать этот обходной путь:
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 есть.
Единственный способ избавиться от этой надоедливой вибрации - полностью отключить уведомление о «доступном Wi-Fi». Для этого перейдите в настройки-> Wi-Fi -> нажмите на три вертикальные точки -> перейдите в «Расширенные настройки» и отключите уведомления для общедоступных сетей Wi-Fi. В ожидании исправления, я думаю, что это единственное решение, и не так уж и плохо потеря их отключения, я всегда думал, что они достаточно бесполезны.
Настройки> Приложения> Службы подключения к Google> Уведомления> Блокировка полностью их отключает.
Это уведомление инициируется системой Android ( android
). Вы можете использовать appops для отказа Android System в разрешении вибрировать устройство в любой ситуации. При условии, что вы настроили adb на ПК, выполните:
adb shell appops set android VIBRATE deny
Попробуйте подключиться к Wi-Fi без доступа к Интернету. Вы все равно получите это уведомление, но без вибрации. Если вы также намереваетесь скрыть это уведомление, вы можете следовать остальным ответам, размещенным здесь или на этом веб-сайте.
Чтобы отменить изменения, выполните:
adb shell appops set android VIBRATE allow
Вибрация для вызова инициируется приложением Dialer, для SMS это будет приложение по умолчанию для SMS, для сообщений WhatsApp - это то же самое приложение, поэтому они не будут затронуты. У этой команды могут быть непредвиденные последствия, о которых я не знаю, поэтому дайте мне знать о них в комментариях.
Примечание: это решение протестировано на неофициальной сборке CM13.