AndroidのFCM通知に苦労しています。この問題は、アプリが閉じられていて実行されていない場合にのみ発生します。私はクリックのアクティビティを達成しようとしていますが、私はアプリを開きたくないので、メッセージが消えないようにしたいと思います。アプリが開いて動作しているときは完全に機能します。アプリが開いていないときは、まだ通知が届いていますが、通知は複数行になっていないため、通知の開始部分のみが表示されます。その後、通知をクリックすると消えます。私は何時間も働いて解決策を見つけようと努力してきました。ここに私がこれまでに持っているコードはあります:Android FCM通知の問題
private void sendNotification(String messageBody) {
//Intent intent = new Intent(this, MainActivity.class);
// intent.setFlags(Intent.FLAG_ACTIVITY_NO_USER_ACTION);
//PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
// PendingIntent.FLAG_UPDATE_CURRENT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle("My Car Wash App")
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentText(messageBody)
.setDefaults(NotificationCompat.DEFAULT_ALL)
.setStyle(new NotificationCompat.BigTextStyle().bigText(messageBody))
.setPriority(NotificationCompat.PRIORITY_MAX);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notificationBuilder.build());
}
何か助けや提案をいただければ幸いです。
EDIT *******
問題は、私は私のアプリが開いているとき、私は今だけ呼び出されている上記のコードを実現悪いより多くの研究の後に質問をしています。
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
//Displaying data in log
//It is optional
Log.i("myStuff", "From: " + remoteMessage.getFrom());
Log.i("myStuff", "Notification Message Body: " + remoteMessage.getNotification().getBody());
//Calling method to generate notification
sendNotification(remoteMessage.getNotification().getBody());
}
アプリはアプリが実行されない限り、通知は複数行に表示されない理由はフォアグラウンドではない場合onMessageReceivedが呼び出されません。この件に関しては多くの情報が掲載されていますが、まだそれを理解できないようです。
はここでアプリが動作しているときの通知は、Android上でiOSの完璧な、完璧な仕事 *
var data = new
{
to = deviceId,
notification = new
{
body = msg,
title = "My Car Wash",
icon = "myicon"
},
priority = 10
};
私のC#サーバー側のコードです。私はちょうどマルチラインで正しく表示するメッセージを得ることができず、私は何をすべきか分からない。
*
BigTextStyle()を通知するように設定しているので、マルチテキストで表示されます。複数の行にテキストが表示されない場合は、2本の指で通知を展開できます。また、通知にアクションを設定していないので、クリックしても表示されなくなります。 – Apurva
私は自分の質問を編集しました。私は提案に感謝しますが、問題は、私のアプリがフォアグラウンドにない限りBigTextStyle()が呼び出されないというコードです。 –
あなたの質問から、あなたは通知ペイロードを使用しているようです。通知ペイロードの代わりにデータペイロードを使用する必要があります。その理由は、通知ペイロードを使用しているときにバックグラウンドで一度追加機能を無視すると、FCMの設計は自動的にデフォルトの通知方法を使用するためです。奇妙だけど、彼らはそうしようと思った。データペイロード機能を使用して試し、結果を確認してください。データのペイロードを送信する方法については、https://firebase.google.com/docs/cloud-messaging/concept-optionsこのリンクを確認してください – JamesYTL