組み込み確認事項
Fanship SDK を組み込み終わった後、下記の利用する際の共通の機能の実装及び動作と、各機能を利用する場合での実装及び動作をご確認ください。
共通
実装の確認
- meta-data タグ の POPINFO_APP_ID に正しい値が記述されていることをご確認ください。
特に、本番環境へ開発環境の値を設定していないかご確認ください。
<meta-data
android:name="POPINFO_APP_ID"
android:value="<FANSHIPのアプリケーションIDを設定してください>" />
- meta-data タグの POPINFO_DEBUG が false またはこのタグを定義していないことをご確認ください。
<meta-data
android:name="POPINFO_DEBUG"
android:value="false" />
- 以下の popinfo のPUSH配信受信のための service または FCM を 受信できるクラスが記述されていることをご確認ください。
<service
android:name="パッケージ名.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
※MyFirebaseMessagingService#onNewToken に Popinfo#setToken 、MyFirebaseMessagingService#onMessageReceivedに Popinfo#fcmMessageHandler がそれぞれ記述されているかどうかご確認ください。
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);
}
}
- provider タグ内の android:authorities に正しく
アプリパッケージ名.popinfoが記述されていることをご確認ください。
<provider
android:name="jp.iridge.popinfo.sdk.PopinfoMessageProvider"
android:exported="false"
android:authorities="${applicationId}.popinfo" />
- 必要なパーミッションが正しく記述されていることをご確認ください。
<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" />
- 独自の Application クラスの
onCreate()内でFANSHIPの初期化およびFCMトークンを設定していることをご確認ください。
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// FANSHIP の初期化
Popinfo.init(this)
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
if (!task.isSuccessful) {
return@OnCompleteListener
}
// FCMトークンの登録
val token = task.result
Popinfo.setToken(applicationContext, token)
})
}
}
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// FANSHIP の初期化
Popinfo.init(this);
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);
}
});
}
}
- popinfo-sdk プロジェクトがライブラリモジュールとして追加されていることをご確認ください。

- firebase-messaging ライブラリが正しく追加されていることをご確認ください。
dependencies {
// ...
implementation 'com.google.firebase:firebase-messaging:x.x.x'
}
targetSdkVersion 31 以上
- 下記のパーミッションが正しく記述されていることをご確認ください。
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM"/>
ProGuard へ設定の追加
この手順はアプリで難読化設定をしている場合に行ってください
難読化時に指定している proguard ファイルへ以下を追加します。
-keep class jp.iridge.popinfo.sdk.** { *; }
-dontwarn jp.iridge.popinfo.sdk.**
-keep class * extends jp.iridge.popinfo.sdk.callback.PopinfoBaseCallback
※デフォルトではプロジェクト作成時に app/proguard-rules.pro というファイルが作成されます
動作の確認
Android 10 未満
-
アプリを起動中にホームボタンでホーム画面表示させた状態でプッシュ通知が届き、表示ボタンを押して正しく画面遷移することをご確認ください。
-
アプリを起動中にバックキー終了させ、ホーム画面表示させた状態でプッシュ通知が届き、表示ボタンを押して正しく画面遷移することをご確認ください。
-
アプリがフォアグラウンド状態で、プッシュ通知が届き、表示ボタンを押して正しく画面遷移することをご確認ください。
Android 10 以上
-
端末設定→アプリ→通知→Info→ポップアップが ON になっていることをご確認ください。
※Infoはデフォルトの場合の通知チャンネル名となります -
プッシュ通知が届き、ヘッドアップ通知をタップして正しく画面遷移することをご確認ください。
配信タイプ「Push通知のみ」を利用する場合
実装の確認
- meta-data の POPINFO_USES_PUSH_ONLY の値が true になっていることをご確認ください。
<meta-data
android:name="POPINFO_USES_PUSH_ONLY"
android:value="true" />
動作の確認
- Push通知のみ配信を行い、通知エリアの通知をタップして正しく画面遷移することをご確認ください。
位置情報を利用する場合
※GPS&ネットワーク測位共通
実装の確認
- meta-data タグの POPINFO_LOCATION_SOURCES に
GPSの文字列が記述されていることをご確認ください。
<meta-data
android:name="POPINFO_LOCATION_SOURCES"
android:value="GPS" />
- 位置情報取得に必要なパーミッションが正しく記述されていることをご確認ください。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
- Google Play Services に必要な設定が正しく記述されていることをご確認ください。
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
- 位置情報取得に必要なライブラリが正しく追加されていることをご確認ください。
dependencies {
// ...
implementation 'com.google.android.gms:play-services-location:x.x.x'
}
端末設定の確認
-
端末設定→位置情報が ON になっていることをご確認ください。 -
端末設定→アプリ→許可or権限→位置情報が ON または、常に許可かアプリの使用中のみ許可になっていることをご確認ください。
動作の確認
- popinfo配信管理画面において、GPS配信を設定し、配信が届くことを確認してください。

Wi-Fi を利用する場合
実装の確認
- meta-data タグの POPINFO_LOCATION_SOURCES に
Wi-Fiの文字列が記述されていることをご確認ください。
<meta-data
android:name="POPINFO_LOCATION_SOURCES"
android:value="Wi-Fi" />
- Wi-Fi検知に必要なパーミッションが正しく記述されていることをご確認ください。
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
- 位置情報検知パーミッションが正しく記述されていることをご確認ください。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
端末設定の確認
-
端末設定→Wi-Fiが ON になっていることをご確認ください。 -
端末設定→位置情報が ON になっていることをご確認ください。 -
端末設定→アプリ→許可or権限→位置情報が ON または、常に許可かアプリの使用中のみ許可になっていることをご確認ください。
動作の確認
- popinfo配信管理画面において、Wi-Fi配信を設定し、配信が届くかどうかご確認ください。

iBeacon を利用する場合
実装の確認
- meta-data タグの POPINFO_LOCATION_SOURCES に
iBeaconの文字列が記述されていることをご確認ください。
<meta-data
android:name="POPINFO_LOCATION_SOURCES"
android:value="iBeacon" />
- iBeacon検知に必要なパーミッションが正しく記述されていることをご確認ください。
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
- 位置情報検知パーミッションが正しく記述されていることをご確認ください。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
targetSdkVersion 31 以上
- 下記のパーミッションが正しく記述されていることをご確認ください。
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
端末設定の確認
-
端末設定→Bluetoothが ON になっていることをご確認ください。 -
端末設定→位置情報が ON になっていることをご確認ください。 -
端末設定→アプリ→許可or権限→位置情報が ON または、常に許可かアプリの使用中のみ許可になっていることをご確認ください。
動作の確認
- popinfo配信管理画面において、Bluetooth配信を設定し、配信が届くかどうかご確認ください。

アプリ内メッセージ を利用する場合
動作の確認
-
popinfo配信管理画面において、アプリ内メッセージを設定し、配信が届くかどうかご確認ください。

-
アプリ内メッセージを表示する際、他のダイアログ等と同時に表示されてしまわないかご確認ください。
※初回インストール、アプリアップデート等の状態で表示した場合など -
アプリ内メッセージのボタンを押下した際、設定をした遷移が正しく行われるかご確認ください。
GPS、Wi-Fi 、iBeacon のいずれかをバックグラウンドでも利用する場合
実装の確認
- 下記のパーミッションが正しく記述されていることをご確認ください。
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
動作の確認
- 初回起動時にプッシュ許諾、位置情報許諾の前にインフォメーションダイアログが表示され、バックグラウンド位置情報を使用するといった文言が表示されているかご確認ください。
※バックグラウンドで位置情報にアクセスするアプリとして、承認を受けるために必要となります。
(参照 「アプリ内での開示を目立つ方法で提供する」: https://support.google.com/googleplay/android-developer/answer/9799150
※アプリ独自で情報を表示しております場合は、この確認は不要となります。