O Normal Notification Builder não mostra notificações no Android O.
Como eu poderia mostrar uma notificação no Android 8 Oreo?
Há algum novo código a ser adicionado para mostrar a notificação no Android O?
O Normal Notification Builder não mostra notificações no Android O.
Como eu poderia mostrar uma notificação no Android 8 Oreo?
Há algum novo código a ser adicionado para mostrar a notificação no Android O?
Respostas:
No Android O, é necessário usar um canal com seu Notification Builder
abaixo está um código de exemplo:
Ou com compatibilidade de manipulação por:
ou se você deseja uma correção simples, use o seguinte código:
Atualizações: referência NotificationCompat.Builder
Este construtor foi descontinuado no nível da API 26.0.0, portanto, você deve usar
portanto, não há necessidade
setChannelId
com o novo construtor.E você deve usar a versão mais recente da biblioteca AppCompat atualmente 26.0.2
Fonte do canal Android Developers no Youtube
Além disso, você pode conferir os documentos oficiais do Android
fonte
NotificationCompat.Builder(Context, String)
construtor? Estou usando (entre outras coisas): -compileSdkVersion 26
-buildToolsVersion '26.0.2'
-compile 'com.android.support:appcompat-v7:26.0.0-beta2'
e ainda assim ele não está aceitando meu construtor usando um Context e String. Alguma ideia?Aqui eu posto alguma função de solução rápida com manipulação de intenção
fonte
Além desta resposta , você precisa criar o canal de notificação antes que ele possa ser usado.
Além disso, você precisa usar canais apenas se sua targetSdkVersion for 26 ou superior.
Se você estiver usando o NotificationCompat.Builder, também precisará atualizar para a versão beta da biblioteca de suporte: https://developer.android.com/topic/libraries/support-library/revisions.html#26-0-0- beta2 (para poder chamar
setChannelId
o compat builder).Tenha cuidado, pois esta atualização da biblioteca eleva o minSdkLevel para 14.
fonte
fonte
Se você não pode receber a notificação por push na versão 26+ SDK?
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder (contexto, channel_id)
-> Aqui você receberá uma notificação por push usando
channel_id
no seu dispositivo, que consiste na versão 26+ do SDK.-> Como o
NotificationCompat.Builder(context)
método está obsoleto agora você usará uma versão atualizada que possui dois parâmetros, um é contexto, outro é channel_id.->
NotificationCompat.Builder(context, channel_id)
método atualizado. tente.-> Na versão 26+ do SDK do dispositivo, você criará channel_id toda vez.
fonte
Use esta classe para a notificação do Android 8
fonte
Experimente este código:
fonte
Aplicativo de demonstração de notificação do Android para Android O, bem como versões mais baixas da API. Aqui está o melhor aplicativo de demonstração no GitHub-Demo 1 e GitHub-Demo 2 .
fonte
Este é um erro na versão 11.8.0 da API do firebase. Portanto, se você reduzir a versão da API, não enfrentará esse problema.
fonte
Eu estava com o mesmo problema no Oreo e descobri que se você criar seu canal pela primeira vez com o NotificationManager.IMPORTANCE_NONE e atualizá-lo mais tarde, o canal manterá o nível de importância original.
Isso é suportado pela documentação de treinamento da Notificação do Google, que afirma:
Remover e reinstalar o aplicativo permitirá que você redefina os comportamentos do canal.
É melhor evitar o uso de IMPORTANCE_NONE, a menos que você queira suprimir as notificações para esse canal, ou seja, para usar notificações silenciosas.
fonte
Aqui está como você faz
Leia o tutorial completo em => https://developer.android.com/training/notify-user/build-notification
fonte
CHANNEL_ID
em NotificationChannel e Notification.Builder deve ser o mesmo, tente este código:fonte
Bem, no meu caso, eu tenho o Android 8.1.0 e o número do modelo vivo1811 , e tentei com todas as soluções acima, mas o Nada funciona.
Então, finalmente, eu escrevi para o Firebase Support e, em seguida, para depuração adicional, estava recebendo o seguinte: "Falha ao transmitir para o aplicativo parado": verifique se o aplicativo não foi forçado a parar " .
E esta foi a resposta da equipe Firebase ->
Aqui OEM significa Fabricante de equipamento original .
fonte
Para quem estiver enfrentando problemas após tentar as soluções acima, verifique se o ID do canal usado ao criar o canal de notificação é idêntico ao ID do canal definido no construtor Notification.
fonte
fonte
O método a seguir mostrará a Notificação , com o texto grande e o congelamento ativados (a notificação não será removida mesmo após o furto do usuário). Precisamos do serviço NotificationManager
Método para remover notificações
Link de origem
fonte
já foi descontinuado para a versão maior ou igual ao Android Oreo. Você pode alterar a implementação para usar
fonte
fonte
O código abaixo está funcionando para mim no Oreo, você pode tentar isso. espero que funcione para você
private void sendNotification (Contexto ctx, Título da string, int notificationNumber, Mensagem da String, subtexto da String, Intent intent) {
try {
fonte
No Android Oreo, o aplicativo de notificação é feito usando os canais e a classe NotificationHelper. Ele deve ter um ID e nome de canal.
Primeiro você tem que criar uma classe NotificationHelper
Crie um botão no arquivo xml de atividade e, em seguida, na atividade principal
Em seguida, execute seu projeto
fonte
Você precisa criar um canal de notificação para o nível da API acima de 26 (oreo).
STRING_ID = notificação de cadeia channelid é a mesma que em Notification.Builder como este
O ID do canal na notificação e na notificação deve ser o mesmo Código inteiro é assim .. `
fonte
Primeiro, se você não sabe, no Android Oreo, ou seja, no nível 26 da API, é obrigatório que as notificações sejam registradas novamente em um canal.
Nesse caso, muitos tutoriais podem confundi-lo porque mostram um exemplo diferente para a notificação acima ou abaixo.
Então, aqui está um código comum que roda tanto acima quanto abaixo do oreo:
Tutorial em vídeo: VÍDEO DO YOUTUBE
Caso você queira fazer o download desta demo: GitHub Link
fonte
fonte