Desde a atualização do Android 6.0 no Nexus 5, sempre que recebo a notificação 'Entrar na rede WiFi', o telefone vibra. Alguma idéia de onde posso desativar isso enquanto mantém a vibração de chamadas, SMS, mensagens do WhatsApp etc.?
Desde a atualização do Android 6.0 no Nexus 5, sempre que recebo a notificação 'Entrar na rede WiFi', o telefone vibra. Alguma idéia de onde posso desativar isso enquanto mantém a vibração de chamadas, SMS, mensagens do WhatsApp etc.?
Respostas:
Existe uma solução alternativa que envolve o modo Não perturbe apenas a prioridade .
Para simplificar, você deve usar apenas Prioridade (em Configurações rápidas - Não perturbe ), pois possui uma configuração por aplicativo para alerta de notificação que pode substituir a configuração padrão do sistema. O modo somente prioridade ainda mostrará todas as notificações. No entanto, apenas as notificações prioritárias serão alertadas (som, vibração e luz LED).
A idéia é tratar todas as notificações como prioritárias (em Configurações - Som e notificação - Notificações de aplicativos - [nome do aplicativo] - Tratar como prioridade), exceto a notificação do portal cativo, que está no aplicativo Android System (por padrão, os aplicativos do sistema não estão listados Você precisa marcar Mostrar sistema no menu excedente. Deixe este aplicativo como não prioritário, mas não se esqueça dos demais aplicativos do sistema).
No entanto, existem algumas desvantagens que você pode considerar primeiro antes de usar esta solução alternativa:
TL; DR
Se você ainda deseja ter vibração em todas as notificações, exceto no portal cativo (esse problema em particular) , receio que não possa .
É como o dbasch mencionado no comentário , que a vibração (na verdade, o próprio alerta de notificação ) foi adicionada ao Marshmallow.
Quando o Android detecta que o Wi-Fi precisa fazer login no portal cativo, como você já percebeu, ele cria uma notificação. É feito por setProvNotificationVisibleIntent()
função em ConnectivityService
.
Mostrar ou ocultar notificações de provisionamento de rede.
Utilizamos notificações para dois propósitos: notificar que uma rede requer login (
NotificationType.SIGN_IN
) ou notificar que uma rede não tem acesso à Internet (NotificationType.NO_INTERNET
). Exibimos no máximo uma notificação por ID; portanto, em uma rede específica, podemos exibir o tipo de notificação que foi solicitado mais recentemente. Por exemplo, se um portal cativo falhar em responder alguns segundos após a conexão, poderemos primeiro exibirNO_INTERNET
e, quando a verificação do portal cativo for concluída, será exibidaSIGN_IN
.
O código relevante para o alerta de notificação usado no Android 6.0 Marshmallow :
Notification notification = new Notification.Builder(mContext)
...
.setDefaults(Notification.DEFAULT_ALL)
...
Observe que Notification.DEFAULT_ALL
" usará todos os valores padrão (onde aplicável) ", o que significa que depende da configuração de notificação do seu sistema (som, vibração e luz do LED).
Comparado com o Android 5.x Lollipop , o código é:
Notification notification = new Notification();
...
Nem mais nem menos. Esse é o código relevante. new Notification()
irá " construir um Notification
objeto com valores padrão ". Embora pareça que não há alteração no significado, observe que defaults
não está definido / inicializado para Notification.DEFAULT_ALL
(valor: -1). Em vez disso, como não há inicialização, ele será padronizado como 0, o que não é um alerta .
Se é um bug ignorado pelo Google que foi corrigido no Marshmallow ou não, eu não sei. Além disso, essa é a razão pela qual não há alerta no Android Lollipop, mas agora existe no Android Marshmallow.
A única maneira que encontrei para me livrar dessa vibração irritante é desativar completamente a notificação 'disponível wifi'. Para fazer isso, vá para configuração-> wifi -> toque nos três pontos verticais -> vá para 'configurações avançadas' e desative as notificações para redes wifi acessíveis ao público. Esperando por uma correção, acho que é a única solução e uma perda não tão ruim para desativá-los, sempre os achei inúteis o suficiente.
Configurações> Aplicativos> Google Connectivity Services> Notificações> Bloquear os desativa totalmente.
Essa notificação é iniciada pelo sistema Android ( android
). Você pode usar os aplicativos para negar ao sistema Android a permissão para vibrar o dispositivo em qualquer situação. Desde que você tenha configurado o ADB no PC, faça:
adb shell appops set android VIBRATE deny
Tente conectar-se a um Wi-Fi sem acesso à Internet. Você ainda receberia essa notificação, mas sem vibração. Se você também pretende ocultar essa notificação, pode seguir o restante das respostas postadas aqui ou neste site.
Para reverter as alterações, faça:
adb shell appops set android VIBRATE allow
A vibração para chamadas é iniciada pelo aplicativo Dialer; para SMS, seria o aplicativo SMS padrão; para mensagens do WhatsApp, é o mesmo aplicativo, para que não sejam afetados. Pode haver consequências imprevistas desse comando que eu não conheço, então, deixe-me saber sobre eles por meio de comentários.
Nota: esta solução foi testada em uma versão não oficial do CM13.