Локальное уведомление не работает в android - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу воспроизводить пользовательский звук при уведомлении, поэтому я загружаю данные приложения и на основании этого могу воспроизводить звук. Но после воспроизведения звука я хочу показать местное уведомление, которое не работает для меня. ПРИМЕЧАНИЕ: мой пользовательский звуковой код находится в 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...