Итак, я внедрил FCM для уведомлений.
Таким образом, мы также можем отправить некоторые данные вместе с уведомлением, используя Firebase Cloud Messaging.
Здесь я создал канал и зарегистрировал устройство в «общей» теме.
Вот мой код:
пакет com.femindharamshi.fcmtrial;
import android.app.NotificationManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.NotificationManagerCompat;
import android.util.Log;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import java.util.Map;
public class MyFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Map m = remoteMessage.getData();
showNotification(remoteMessage.getNotification().getTitle(), remoteMessage.getNotification().getBody(), m);
Class me = remoteMessage.getClass();
Log.d("MessageDateRecieved", ""+me.toString());
}
public void showNotification(String title, String message, Map m) {
NotificationCompat.Builder builder = new NotificationCompat.Builder(this, "MyNotifications")
.setContentTitle(title)
.setSmallIcon(R.drawable.small_logo)
.setAutoCancel(true)
.setContentText(message);
NotificationManagerCompat manager = NotificationManagerCompat.from(this);
manager.notify(999, builder.build());
}
}
Теперь у меня следующие 2 вопроса:
- Когда приложение не запущено / не уничтожено, логотип уведомления (R.drawable.small_logo), находящийся в моей папке res / drawable, не отображается, а отображается серый круг. Как мне решить эту проблему.
- Если я передаю данные через это сообщение, я могу записать их на карту. Теперь отображение приложения не запущено, и я хочу сохранить эти данные в SharedPreferences, тогда как это возможно?