コンテンツにスキップ

事前準備

このページの解説では Android Studio Chipmunk 2021.2.1 Patch 2 を用いています。

使用するバージョンによって細部が異なる可能性がありますが、ご了承ください。

プロジェクトを作成する

まずは Android Studio でプロジェクトを作成します。
既存のプロジェクトに SDK を追加する場合にはこの工程は不要です。

本ガイドでは、代表例として Empty Activity テンプレートを選択しています。
Package name などは、実際に使用される値に置き換えてプロジェクトを作成してください。


FCM の利用登録

  1. サポートページのFCMサーバーキー取得方法を参考に、Firebase へのプロジェクト作成を行ってください。
  2. サポートページのFCMサーバーキー管理画面への登録を参考に、FCM サーバーキーの登録を行ってください。

※事前に Google アカウントを作成されていることが前提となります。


Firebase Cloud Messaging の追加

Firebase Cloud Messaging の追加の例として、Firebase アシスタントを使用した追加の方法を紹介します。

Tools > Firebase > Assistant > Cloud Messaging の ② まで進めたところでこの作業は終了です。

動画中 ① Connect your app to Firebase でエラーが出た場合


Module : build.gradle の dependencies 内にimplementation 'androidx-legacy-support-v4:1.0.0' がある場合、エラーとなる可能性が高いため、一度コメントアウトいただき、手順②を終了後、コメントアウトを外していただくよう願います。


SDK をダウンロードする

FANSHIP管理画面へログインした後に、Android 用の SDK をダウンロードしてください。

ZIP 展開されたディレクトリ配下の popinfo-sdk がプロジェクトに追加する SDK フォルダです。


SDK をプロジェクトに追加する

SDK 追加の例として、Android Studio のモジュール追加を使用した方法を紹介します。

SDK 追加後、app/build.gradle の dependencies に下記のコード追加してください。

implementation project(':popinfo-sdk')

AndroidManifest.xml の編集

以下のコードを AndroidManifest.xml に追加してください。

アプリケーションID については FANSHIP配信管理画面 から Android 基本情報 > アプリケーションID をコピーをしてください。

<!-- 1. application タグ外に追加してください -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>

<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>

<!-- 2. application タグ内に追加してください -->
<meta-data
    android:name="POPINFO_APP_ID"
    android:value="<FANSHIPのアプリケーションIDを設定してください>" />
<provider
    android:name="jp.iridge.popinfo.sdk.PopinfoMessageProvider"
    android:exported="false"
    android:authorities="${applicationId}.popinfo" />
<meta-data
    android:name="POPINFO_LOCATION_SOURCES"
    android:value="" />

Application 継承クラスの実装 および FANSHIPの初期化

Application クラスを継承したクラスを作成します。
AndroidManifest.xml の編集、およびソースコードの追加を行います。

class MyApplication : Application() {

    override fun onCreate() {
        super.onCreate()

        // FANSHIP の初期化
        Popinfo.init(this)
    }
}
public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();

        // FANSHIP の初期化
        Popinfo.init(this);
    }
}


<application
    android:name=".MyApplication"
    ...>

FCMトークンの登録 および FANSHIP への設定を行う

FirebaseMessagingService クラスを継承したクラスを作成します。
AndroidManifest.xml の編集、およびソースコードの追加を行います。

import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import jp.iridge.popinfo.sdk.Popinfo

class MyFirebaseMessagingService : FirebaseMessagingService() {

    override fun onNewToken(newToken: String) {
        super.onNewToken(newToken)

        // FCMトークンの登録
        Popinfo.setToken(this, newToken)
    }

    override fun onMessageReceived(remoteMessage: RemoteMessage) {
        super.onMessageReceived(remoteMessage)

        // FANSHIP FCMメッセージ設定
        Popinfo.fcmMessageHandler(this, remoteMessage)
    }

}
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
import jp.iridge.popinfo.sdk.Popinfo;

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onNewToken(String newToken) {
            super.onNewToken(newToken);

        // FCMトークンの登録
        Popinfo.setToken(this, newToken);
    }

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        super.onMessageReceived(remoteMessage);

        // FANSHIP FCMメッセージ設定
        Popinfo.fcmMessageHandler(this, remoteMessage);
    }
}


<!-- application タグ内に追加してください -->
<service
        android:name=".MyFirebaseMessagingService"
        android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT"/>
    </intent-filter>
</service>


MyApplication クラスの onCreate() に以下のコードを追加してください。

FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
        if (!task.isSuccessful) {
            return@OnCompleteListener
        }

        // FCMトークンの登録
        val token = task.result
        Popinfo.setToken(applicationContext, token)
})

MyApplication クラスの onCreate() に以下のコードを追加してください。

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

        // FCMトークンの登録
        String token = task.getResult();
        Popinfo.setToken(getApplicationContext(), token);
    }
});

Warning

FCM トークンが登録されていない場合、プッシュ通知を受け取ることが出来ません。
また、後述するテスト受信端末登録操作に失敗します。


FANSHIP の起動

MainActivity の onCreate() に以下のコードを追加してください。

Popinfo.start(this)

ビルドできるか確認する

Android Studio による Compile Error が出ていないことを確認したら、Build > Make Projectet を選択してください。

エラーが発生しなければ SDK が正しく組み込まれたということになりますので、事前準備は完了です。