【Android】FCMでプッシュ通知用トークンを取得する方法

ALL
この記事は約3分で読めます。

今回は、「Firebase Cloud Messaging(FCM)」を使用して、スマートフォンへ通知を送るために必要なトークンの発行方法を紹介します。

build.gradleファイルの修正

dependencies {
    …
    implementation "com.google.firebase:firebase-messaging:23.1.1"
}
buildscript {
    dependencies {
        classpath 'com.google.gms:google-services:4.3.14'
    }
}

継承クラスを追加

import com.google.firebase.messaging.FirebaseMessagingService;

public class MyFirebaseMessagingService extends MyFirebaseMessagingService {

    @Override
    public void onNewToken(String token){
        //tokenにトークンが格納される
    }
}

マニフェストファイルの修正

マニフェストファイルに以下のソースを追加する。

nameプロパティはclassファイルのパスに注意してください。

間にフォルダをかませる場合は「.フォルダ名.MyFirebaseMessagingService」のように変更してください。

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

現在のトークンを取得する方法

トークンが発行された段階で、MyFirebaseMessagingServiceの「onNewToken」の「token」に設定されます。

別の方法として、発行された現在のトークンを欲しい時に取ることも可能です。

FirebaseMessaging.getInstance().getToken()
    .addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
          if (!task.isSuccessful()) {
            return;
          }

          String token = task.getResult();
        }
    });