这是我的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->可以发送消息->创建新消息并发送。我的应用程序将收到通知。但无需输入onMessageReceived方法即可“自动”创建。 我该如何强迫它这样做? 这是我通过控制台发送的数据: https://s3.amazonaws.com/uploads.hipchat.com/39260/829560/7Pp0KJIErZ8XVZZ/upload.png
我在做什么错了?
就像我说的,我收到通知,但是通知是自动创建的,而不是通过我的FirebaseMessaging服务。
我确实设法更改了图标,
<meta-data
android:name="com.google.firebase.messaging.default_notification_icon"
android:resource="@drawable/notification_icon" />
但是我仍然需要在运行其他代码时运行它,而不仅仅是显示它。而且我不知道如何