事前準備
このページの解説では Android Studio Chipmunk 2021.2.1 Patch 2 を用いています。
使用するバージョンによって細部が異なる可能性がありますが、ご了承ください。
プロジェクトを作成する
まずは Android Studio でプロジェクトを作成します。
既存のプロジェクトに SDK を追加する場合にはこの工程は不要です。
本ガイドでは、代表例として Empty Activity テンプレートを選択しています。
Package name などは、実際に使用される値に置き換えてプロジェクトを作成してください。
FCM の利用登録
- サポートページのFCMサーバーキー取得方法を参考に、Firebase へのプロジェクト作成を行ってください。
- サポートページの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 が正しく組み込まれたということになりますので、事前準備は完了です。