FCMメッセージの受信¶
FCMメッセージを受信するクラスを作成します。
メッセージの受信¶
FirebaseMessagingServiceクラスを継承し、onMessageReceived()を実装します。
FCMでメッセージを受信すると同メソッドが呼ばれます。
この時点ではステータスバーや通知ドロワーに通知は表示されませんので、表示するための処理を実装します。
//FirebaseMessagingServiceクラス
void onMessageReceived(RemoteMessage message)
パラメータ | 内容 |
---|---|
message | プッシュ通知の内容 |
クラス名は任意です。変更する場合は、マニフェストの記述も変更してください。
AndroidManifest.xml
Android Studioプロジェクトの設定で設定したマニフェストの例
FirebaseMessagingServiceBaseクラスを作成する。
<service
android:name=".FirebaseMessagingServiceBase">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
通知の表示¶
受信したメッセージをステータスバーや通知ドロワーに表示するために、RichFlyer SDKのRFSendPushInformation.setPushData()を使います。
RFSendPushInformationのコンストラクタにステータスバーに表示する通知アイコンを設定することができます。
//RFSendPushInformationクラス
RFSendPushInformation(Context context, @DrawableRes int iconResourceId)
パラメータ | 内容 |
---|---|
context | FirebaseMessagingServiceクラスのコンテキスト |
iconResourceId | ステータスバーに表示するアイコンのリソースID |
//RFSendPushInformationクラス
void setPushData(Map<String, String> data)
パラメータ | 内容 |
---|---|
data | プッシュ通知データ。RemoteMessage.getData()で取得する。 |
実装例¶
Java
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import jp.co.infocity.richflyer.RFSendPushInformation;
public class FirebaseMessagingServiceBase extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
// メッセージの取得
// RFSendPushInformationをインスタンス化
// 通知受信時に通知バーに表示するアイコンを設定
RFSendPushInformation spi = new RFSendPushInformation(this, R.mipmap.ic_notice);
// 通知ドロワーに受信したプッシュ通知を表示する
spi.setPushData(remoteMessage.getData());
}
}