Usei o construtor NotificationCompat mais recente e não consigo receber a notificação para emitir um som. Ele vibrará e piscará a luz. A documentação do Android diz para definir um estilo com o qual eu fiz:
builder.setStyle(new NotificationCompat.InboxStyle());
Mas nenhum som?
O código completo:
NotificationCompat.Builder builder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Notifications Example")
.setContentText("This is a test notification");
Intent notificationIntent = new Intent(this, MenuScreen.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent,
PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(contentIntent);
builder.setAutoCancel(true);
builder.setLights(Color.BLUE, 500, 500);
long[] pattern = {500,500,500,500,500,500,500,500,500};
builder.setVibrate(pattern);
builder.setStyle(new NotificationCompat.InboxStyle());
// Add as notification
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(1, builder.build());
android
android-notifications
James MV
fonte
fonte
Respostas:
O que estava faltando no meu código anterior:
fonte
Apenas coloque seu arquivo de som na
Res\raw\siren.mp3
pasta e use este código:Para som personalizado:
Para som padrão:
Para vibração personalizada:
Para vibração padrão:
fonte
Outra maneira para o som padrão
fonte
USE Codificação Pode
fonte
Basta colocar o código simples abaixo:
Para som padrão:
fonte
Você precisa usar o RingtoneManager
Código para noficationmanager com toque de alarme, você também pode definir o toque RingtoneManager.TYPE_RINGTONE
fonte
Você tem que usar o construtor. setSound
fonte
Você pode criar uma função:
Chame esta função quando receber uma notificação.
Aqui, raw é a pasta em res e a notificação é o arquivo de som na pasta raw.
fonte
No Oreo (Android 8) e acima, isso deve ser feito para um som personalizado desta maneira (canais de notificação):
fonte
Primeiro, coloque o arquivo "yourmp3file" .mp3 na pasta bruta (ou seja, dentro da pasta Res)
2º no seu código colocado ..
Isto é o que eu coloquei dentro do meu onClick (View v) como apenas "context (). GetPackageName ()" não funcionará a partir daí, pois não receberá nenhum contexto
fonte
No Android OREO ou versão posterior Depois Registre o canal no sistema; você não pode alterar a importância ou outros comportamentos de notificação após o mesmo canal (Antes de desinstalar o aplicativo)
A prioridade também é importante. A maioria aqui define a prioridade da notificação como alta usando
Importância do nível de importância visível ao usuário (Android 8.0 e superior)
1) Urgente Emite um som e aparece como uma notificação de alerta -> IMPORTANCE_HIGH
2) Alto Emite um som -> IMPORTANCE_DEFAULT
3) Médio Sem som -> IMPORTANCE_LOW
4) Baixo Sem som e não aparece na barra de status -> IMPORTANCE_MIN
o mesmo funciona na mesma ordem Prioridade (Android 7.1 e inferior)
1) PRIORITY_HIGH ou PRIORITY_MAX
2) PRIORITY_DEFAULT
3) PRIORITY_LOW
4) PRIORITY_MIN
fonte
fonte
chame essa função para onde quiser. isso funcionou para mim
fonte
pela instância da classe Notification.builder (construtor) fornecida abaixo, você pode reproduzir o som padrão na notificação:
fonte
notificação de anulação privada () {
É uma notificação completa com som e vibra
fonte
Não depende do construtor ou da notificação. Use o código personalizado para vibrar.
fonte
Você pode fazer o seguinte:
Você cria um pacote entre seus recursos com o nome de raw e lá mantém seus sons e depois simplesmente o chama.
fonte
// define o áudio da notificação (testado até o Android 10)
fonte