Я хочу воспроизводить пользовательский звук при уведомлении, поэтому я загружаю данные приложения и на основании этого могу воспроизводить звук. Но после воспроизведения звука я хочу показать местное уведомление, которое не работает для меня. ПРИМЕЧАНИЕ: мой пользовательский звуковой код находится в MyMessagingService. java
, если кто-то может помочь, почему мой код не работает, это будет отличная помощь
package com.notification;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
public class MyMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(@NonNull RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if(remoteMessage.getNotification() != null){
Log.d("###", "getData" + remoteMessage.getNotification().toString());
String title = remoteMessage.getNotification().getTitle();
String body = remoteMessage.getNotification().getBody();
Notification notification = new NotificationCompat.Builder(this, "FCM_CHANNEL_ID")
.setSmallIcon(R.drawable.ic_settings_system_daydream_black_24dp)
.setContentTitle(title)
.setContentText(body)
.setColor(Color.DKGRAY)
.build();
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
manager.notify(1002, notification);
}
if(remoteMessage.getData().size() > 0){
String soundFile = null;
for(String key: remoteMessage.getData().keySet()){
if(key.equals("sound")){
soundFile = remoteMessage.getData().get(key);
}
Log.d("### ", "onMessageReceived Key: " + key + " Data: " + remoteMessage.getData().get(key));
}
if(soundFile != null){
final MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.beep);
mediaPlayer.start();
displayNotification();
}
Log.d("###", "getData" + remoteMessage.getData().toString());
}
}
public void displayNotification(){
//
// Intent intent = new Intent(this, NotificationActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
// PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "CHANNEL_ID")
.setSmallIcon(R.drawable.ic_settings_system_daydream_black_24dp)
.setContentTitle("ZAPIER")
.setContentText("Alert from Zapier")
// .setContentIntent(pendingIntent)
.setPriority(NotificationCompat.PRIORITY_DEFAULT)
.setAutoCancel(true);
NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
notificationManager.notify(11326, builder.build());
}
@Override
public void onDeletedMessages() {
super.onDeletedMessages();
}
@Override
public void onNewToken(@NonNull String s) {
super.onNewToken(s);
}
}