GCMからFCMに切り替わります。私はそれを使用して私のサーバートラフFCMにメッセージを送信します。私はFirebaseMessagingService
を拡張してコールバックを実装しました。たとえば、onSendError()
は正常に動作しますが、onMessageSent()
は決して実行されません。関連性があるかどうかはわかりませんが、メッセージが受信されたときにサーバーから「ack」スタンザを送信します。Firebase Cloud Messaging onMessageSentが呼び出されていません
マイFirebaseMessegingServiceクラス:
public class FCMListenerService extends FirebaseMessagingService {
public FCMListenerService() {
super();
}
@Override
public void onDeletedMessages() {
Log.d("wouter", "onDeletedMessages: ");
super.onDeletedMessages();
}
@Override
public void onMessageSent(String msgID) {
Log.e("wouter", "##########onMessageSent: " + msgID);
super.onMessageSent(msgID);
Database database = new Database(this);
database.confirmFCMMessageSend(msgID);
database.closeDatabase();
}
@Override
public void onSendError(String msgID, Exception exception) {
Log.e("wouter", "onSendError ", exception);
super.onSendError(msgID, exception);
Database database = new Database(this);
database.eraseFCMMsgIDFromFGMMessageLog(msgID);
database.closeDatabase();
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
}
}
そして、私のマニフェストの関連部分:
<service android:name=".FCM.FCMListenerService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
送信しようとしたメッセージの数はいくつですか? onMessageSentのacksはバッチ処理されるので、メッセージを正常に送信すると、しばらくの間コールバックを受け取らないことがあります。これはバッテリ寿命を助けるためのものです。 10以上のアップストリームメッセージを送信しようとすると、約10メッセージ後にonMessageSentコールバックを受信する必要があります。 –
私はたくさんのテストをして、たくさんのメッセージを送ったので、そうではありません。 –