Вот что у меня внутри AndroidManifest:
<service android:name=".MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name="io.smooch.core.service.SmoochService" />
<service android:name=".MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
Я использую версию: implementation 'com.google.firebase:firebase-messaging:17.0.0'
Вот так выглядит мой FirebaseMessagingService:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
public void onMessageReceived(final RemoteMessage message) {
Log.i("", "MyFirebaseMessagingService onMessageReceived");
final Map data = message.getData();
FcmService.triggerSmoochNotification(data, this);
final Map bundle = data;
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
Log.i("", "GLOBAL intances before GCM:" + Realm.getGlobalInstanceCount(PSApplicationClass.Config));
try {
String title = getString(R.string.alert_title_warning) + " " + getString(R.string.trips_remaining_free, user.getTrips_left());
String message = getString(R.string.alert_freemium_upgrade);
Notification.generateNotificationStandard(MyFirebaseMessagingService.this, title, message, null, null, false, false);
} catch (Exception e) {
Utils.appendLog("GCMIntentService onMessageReceived error: " + e.getMessage(), "E", Constants.PUSH_NOTIFICATIONS);
}
}
});
}
}
И в основном я ставлю точку останова на onMessageReceived этой функции.
Если сервер отправит уведомление в мое приложение, оно будет получено этой службой, и я могу обработать его по мере необходимости.
НО. Если я использую FirebaseConsole -> GROW -> Could Messaging -> я создаю новое сообщение и отправляю его. Мое приложение будет получать уведомления. но он будет создан "автоматически" без ввода моего метода onMessageReceived.
Как я могу заставить это сделать?
Это данные, которые я отправляю через консоль:
https://s3.amazonaws.com/uploads.hipchat.com/39260/829560/7Pp0KJIErZ8XVZZ/upload.png
Что я делаю не так?
EDIT:
Как я уже сказал, я получаю уведомления, но уведомления создаются автоматически, а не через мою службу FirebaseMessaging.
Мне удалось изменить значок следующим образом:
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/notification_icon" />
Но мне все равно нужно запускать другой код, когда я его получаю, а не просто показывать его. а то я не знаю как