У меня есть приложение, в котором я обновил звук уведомления (добавил пользовательский звук).Теперь проблема в том, что я получаю двойные звуки, когда получаю уведомление, 1, который у меня был ранее, и второй, который я добавил новый.После поиска и поиска в Google я узнал, что нам нужно удалить и переустановить приложение, чтобы "новый" звук работал.Так что очевидно, я не могу попросить своих пользователей 2k + переустановить приложение.Так есть ли способ это исправить?Я думаю, что некоторые временные данные хранятся в уведомлении менеджера для обработки / воспроизведения уведомлений (не знаю, мое предположение).
Это мой код
public void sendNotification(String string, Context context) {
// NotificationManager notificationManager2 = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
notificationManager.cancel(notificationId);
if (soundUri == null) {
soundUri = Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.mycustomsound);
}
// Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
String channelId = "channel-01";
String channelName = "Channel Name";
int importance = NotificationManager.IMPORTANCE_HIGH;
Intent intent = new Intent(context, MainFrag.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationChannel mChannel = new NotificationChannel(
channelId, channelName, importance);
AudioAttributes attributes = new AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.setUsage(AudioAttributes.USAGE_NOTIFICATION)
.build();
mChannel.setSound(soundUri, attributes);
notificationManager.createNotificationChannel(mChannel);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, channelId)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("My Title")
.setContentText("Hello there!")
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.setDefaults(0)
.setGroupAlertBehavior(GROUP_ALERT_SUMMARY);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addNextIntent(intent);
mBuilder.setContentIntent(pendingIntent);
notificationManager.notify(notificationId, mBuilder.build());
} else {
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context, channelId)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("Title")
.setContentText("Hello there!")
.setContentIntent(pendingIntent)
.setAutoCancel(true)
.setDefaults(0)
.setGroupAlertBehavior(GROUP_ALERT_SUMMARY);
// .setSound(defaultSoundUri);
.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE
+ "://" + context.getPackageName() + "/raw/mycustomsound"));
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addNextIntent(intent);
mBuilder.setContentIntent(pendingIntent);
notificationManager.notify(notificationId, mBuilder.build());
}
}
А также, иногда я получаюУведомление о призраках также (4-5 раз звучит в очереди! Поэтому в моем коде должен быть какой-то сбой.