Вимкніть вібрацію для повідомлення "Увійти до мережі WiFi"


17

З моменту оновлення Android 6.0 на Nexus 5 щоразу, коли я отримую сповіщення "Увійти до мережі Wi-Fi", телефон вібрує. Будь-яка ідея, де я можу відключити це, зберігаючи вібрацію для дзвінків, SMS, повідомлень WhatsApp тощо?


4
Я страждаю з точно таким же питанням. Я широко шукав, і, як видається, нова проблема з v6.0. Дуже, дуже дратує.
dbasch

1
Жоден із запропонованих нижче виправлень не працює для мене. Я використовую режим пріоритету за призначенням (наприклад, коли я зайнятий або сплю); Я не хочу весь час телефон у пріоритетному режимі. І жоден з інших виправлень, здається, насправді не працює (а відповідь Ендрю Т., схоже, вказує на чому). Чи є виправлення для запасів корінних ромів? Залучення модуля Xposed? Чи буде це виправлено в пізніших версіях Android?
znt

Відповіді:


6

Існує рішення щодо залучення Не турбувати пріоритет" .

Простіше кажучи, ви повинні використовувати лише пріоритет (від швидких налаштувань - не турбувати ), оскільки в ньому є налаштування програми для оповіщення про сповіщення, яке може замінити налаштування системи за замовчуванням. У режимі лише з пріоритетом все ще відображатимуться всі сповіщення. Однак буде попереджено лише пріоритетне сповіщення (звук, вібрація та світлодіодне світло).

Ідея полягає в тому, щоб усі сповіщення розглядалися як пріоритетніНалаштувань - Звук та сповіщення - Повідомлення додатків - [Ім'я програми] - Розглядайте як пріоритет), за винятком сповіщень на порталі, що належить до додатка Android System (за замовчуванням системні додатки не вказані . Потрібно поставити галочку Показувати систему в меню переповнення. Залиште це додаток як не пріоритетне, але не забудьте про решту системних додатків).

Однак є деякі недоліки, які ви можете спочатку врахувати, перш ніж використовувати це рішення:

  1. Ви жертвуєте призначеним режимом використання лише пріоритетного режиму, залишаєте лише Повна тиша як єдиний варіант (однак, якщо ви ніколи не збираєтесь користуватися цією функцією, то вам пощастило, оскільки ви можете використовувати її).
  2. Якщо у вас встановлено багато додатків, налаштовувати всі додатки вважати їх сповіщення пріоритетними (можливо, сценарій може допомогти ...). Крім того, кожного разу, коли ви встановлюєте новий додаток, ви не повинні забувати ставитися до його сповіщення як до пріоритетного (якщо ви не переймаєтесь його попередженням).
  3. Ви не отримуватимете сповіщення про всі сповіщення від Android System (вам потрібно експериментувати з цим, оскільки я не знаю, які сповіщення розглядаються системою Android).

5

TL; DR

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

Як у dbasch, зазначеному в коментарі , вібрація (насправді, сповіщення про сповіщення) ) була додана в Marshmallow.


Технічні деталі

Коли 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 не помічає, яку виправили в Marshmallow чи ні, я не знаю. Крім того, це причина, чому немає сповіщень в Android Lollipop, але зараз є в Android Marshmallow.


"Ви не можете". Надіюсь, ви можете з модулем Xposed (або, принаймні, попереднє читання змушує мене це думати), хоча, можливо, доведеться написати це сам ...
znt

1

Єдиний спосіб, коли я знайшов позбутися від цієї дратівливої ​​вібрації, - це повністю відключити сповіщення про "доступний wifi". Для цього перейдіть до налаштування-> wifi -> натисніть на три вертикальні точки -> перейдіть до «розширених налаштувань» та вимкніть сповіщення для загальнодоступних мереж Wi-Fi. Очікуючи виправлення, я вважаю, що це єдине рішення і не така вже й втрата, щоб відключити їх, я завжди вважав їх досить марними.


3
Дякую за вашу відповідь. Це, здається, не працює, але воно все ще відображає сповіщення та вібрує навіть після вимкнення параметра "Мережеве сповіщення".
Ріц

1
Це виправлення не працює і на моєму Nexus 5.
dbasch

Я спробував це на своєму Moto X Pure, і він також не працює.
Нат Кун

Ні на моєму Moto E другого покоління
Енді Кларк

1

Налаштування> Програми> Служби підключення Google> Сповіщення> Блок повністю вимикає їх.


Дякую, (припускаючи, що це працює)! Тепер мені просто потрібен спосіб запам'ятати, що я заблокував це, коли вони це виправлять ...
Нат Кун,

На жаль, це припущення було невірним ... не працював на моєму 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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.