studio setsound notification notificaciones name manager doesn android-notifications android-8.0-oreo

android-notifications - setsound - notification doesn t show on android 8



SetSound de notificaciones de android 8 no funciona (2)

Intenté ver la diferencia entre tu archivo de sonido y el mío. Utilicé el software Audacity. Su archivo de sonido tiene una frecuencia de muestreo de 22050Hz, mientras que los archivos de sonido que uso se muestrean a 44100Hz. Así que convertí la frecuencia de muestreo de tu archivo de sonido a 44100Hz y lo utilicé como sonido de notificación. Ahora funciona.

El problema es con el archivo de sonido. Puede ser que sea un nuevo cambio en Android O porque funciona bien en versiones anteriores de Android.

Esto es cómo volver a muestrear

Tengo el siguiente código, pero cada vez que escucho el sonido predeterminado de Android.

// create channel NotificationChannel channel = new NotificationChannel(ANDROID_CHANNEL_ID, ANDROID_CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT); // Sets whether notifications posted to this channel should display notification lights channel.enableLights(true); // Sets whether notification posted to this channel should vibrate. channel.enableVibration(true); // Sets the notification light color for notifications posted to this channel channel.setLightColor(Color.GREEN); // Sets whether notifications posted to this channel appear on the lockscreen or not //channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE); channel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC); Uri uri = Uri.parse("android.resource://"+this.getPackageName()+"/" + R.raw.aperturaabductores); AudioAttributes att = new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_NOTIFICATION) .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH) .build(); channel.setSound(uri,att);

Este es mi sonido pablomonteserin.es/aperturaabductores.wav


if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { Notification.Builder notificationBuilder = new Notification.Builder(MyApplication.getInstance().getApplicationContext(), NOTIFICATION_CHANNEL_ID) .setSmallIcon(R.mipmap.ic_launcher) .setContentTitle(pTitle) .setContentText(messageBody) .setAutoCancel(true) //.setPriority(Notification.PRIORITY_MAX) // this is deprecated in API 26 but you can still use for below 26. check below update for 26 API //.setSound(defaultSoundUri) .setContentIntent(pendingIntent); NotificationChannel notificationChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID, "My Notifications", NotificationManager.IMPORTANCE_HIGH); // Configure the notification channel. AudioAttributes att = new AudioAttributes.Builder() .setUsage(AudioAttributes.USAGE_NOTIFICATION) .setContentType(AudioAttributes.CONTENT_TYPE_SPEECH) .build(); notificationChannel.setSound(defaultSoundUri,att); notificationChannel.setDescription(messageBody); notificationChannel.enableLights(true); notificationChannel.setLightColor(Color.RED); notificationChannel.setVibrationPattern(new long[]{0, 1000, 500, 1000}); notificationChannel.enableVibration(true); notificationManager.createNotificationChannel(notificationChannel); if (imageThumbnail != null) { notificationBuilder.setStyle(new Notification.BigPictureStyle() .bigPicture(imageThumbnail).setSummaryText(messageBody)); } notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); } else { NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(MyApplication.getInstance().getApplicationContext()) .setSmallIcon(R.mipmap.ic_launcher) .setContentTitle(pTitle) .setContentText(messageBody) .setAutoCancel(true) .setPriority(Notification.PRIORITY_MAX) // this is deprecated in API 26 but you can still use for below 26. check below update for 26 API .setSound(defaultSoundUri) .setContentIntent(pendingIntent); if (imageThumbnail != null) { notificationBuilder.setStyle(new NotificationCompat.BigPictureStyle() .bigPicture(imageThumbnail).setSummaryText(messageBody)); } notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); }