Android

【Android】 Firebaseでの通知処理

Firebaseでの通知処理を実装してみたので、
その方法です。
ちなみに通知ができるまでの最低限の処理です。

Firebaseをプロジェクトに入れる方法は、
過去記事のこちらを参照してください。
Android FireBase クラッシュレポートの導入方法


AndroidManifest.xml

通知を受け取るための前準備をここで書きます。

<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <application
        ....>
        <activity android:name=".MainActivity">
            ....
        </activity>

        <service android:name=".MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>

        <meta-data
            android:name="com.google.firebase.messaging.default_notification_icon"
            android:resource="@android:drawable/btn_star" />
        <meta-data
            android:name="com.google.firebase.messaging.default_notification_color"
            android:resource="@color/colorAccent" />

    </application>

</manifest>


MyFirebaseMessagingService.java

AndroidManifest.xmlで書いた
<service android:name=”.MyFirebaseMessagingService“>
の赤文字部分のクラスを作成します。

public class MyFirebaseMessagingService  extends FirebaseMessagingService {

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        // 通知があれば、プッシュ通知を行う
      if (remoteMessage.getNotification() != null) {
            sendNotification(remoteMessage.getNotification().getBody());
        }

    }
  
   /**
     * プッシュ通知を送る処理
     */
    private void sendNotification(String messageBody) {
        //通知バーをクリックすれば、アプリが起動する
        Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pendingIntent = 
            PendingIntent.getActivity(this, 0, intent,
                PendingIntent.FLAG_ONE_SHOT);

        // 通知バーの表示設定
        Uri defaultSoundUri= 
            RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder = 
            new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.ic_launcher_round)
                .setContentTitle("FireBaseTest")
                .setContentText(messageBody)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);

        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        notificationManager.notify(0, notificationBuilder.build());
    }
}

これでプログラムはできました。

続いてFirebaseから通知を送ります。

 

FirebaseConsoleのNotificationを開き、新しいメッセージをクリックします。


ここでは、メッセージ、配信日、ターゲットを入力します。
ターゲットをユーザーセグメントにすると、どのアプリに送るのか選択します。

入力後、メッセージ送信をクリックしてください。

通知バーが出てますね。
以上です。

ブログランキングに参加中

プログラマーランキング

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です