コンテンツにスキップ

アップデート

旧バージョンからのアップデートを行う際に必要となる、主な共通確認事項を記載しています。

Warning

FANSHIP SDK内ファイルを直接編集している場合は、カスタマイズしたレイアウト、画面クラス、各種設定を維持できませんのでご注意ください。
独自に機能をカスタマイズしている場合につきましても、SDK内のファイルをアプリプロジェクトへコピーし編集している場合に限り、以前の状態を維持したアップデートが可能となっております。

Android Gradle Plugin 8.0 以降を利用する場合

現在同梱の popinfo-sdk/build.gradle ではエラーが出てしまうため、下記のように変更してください。

apply plugin: 'com.android.library'
android {
    compileSdk 33

    defaultConfig {
        minSdkVersion 23
        targetSdk 33
        versionCode 1010
        versionName "10.1.0"
        multiDexEnabled true
    }

    lintOptions {
        abortOnError false
    }

    buildFeatures {
        buildConfig = false
    }

    namespace "jp.iridge.popinfo.sdk"
}

dependencies {
    api fileTree(include: ['*.jar'], dir: 'libs')
    implementation "androidx.work:work-runtime:2.9.0"
}


ver.10.1.0 以降

SDK内部で利用しているJobサービスが JobScheduler から WorkManager へ変更となります。
そのため

  • popinfo_values.xml で定義していた Job ID が不要となったため除去いたしました。
<string name="popinfo_job_id">9000</string>
<string name="popinfo_sub_job_id">9001</string>
  • SDK の Manifest で定義していた BIND_JOB_SERVICE が不要となったため除去いたしました。
<service
    android:name="jp.iridge.popinfo.sdk.PopinfoJobService"
    android:permission="android.permission.BIND_JOB_SERVICE"
    android:exported="false" />
  • 今回導入となった WorkManager の仕様としまして、AppWidgetProvider の onUpdate が定期的に呼ばれてしまいます。
  • SDK が現在提供している PopinfoWidget(AppWidgetProvider) の場合、アイコン画像やテキストが点滅する場合があります。
  • 現在 PopinfoWidget をお使いで、継続してウィジェット機能をお使いになりたい場合、
    WorkManagerの影響を受けない GlanceAppWidget へ移行をお願いします。
  • GlanceAppWidget でのウィジェットの実装例 としまして、
    SDK Sampleプロジェクト の Android > Kotlin > popinfo_sample16 にて紹介しております。(※サンプルの閲覧にはログインが必要です)

ver.10.0.0 以降

  • play-services-location のバージョンを 20 から 21 に引き上げます
    • GPS を使用しない組み込みの場合は影響ありませんが、使用されている場合、
      アプリの play-services-location が 20.x.x以下 の場合は クラッシュします のでご注意ください。
  • 下記機能の提供を廃止いたします
    • 「ヘッドアップ通知を維持する」機能
    • 「端末がロック状態の時にお知らせポップアップを表示する」機能

ver.9.0.0 以降

権限の追加

ver.9.0.0 以降では、必要に応じて
新たに権限 android.permission.POST_NOTIFICATIONS の追加が必要となります。

Push機能を利用している場合

Android13から追加されたPostNofitications許諾ダイアログ 従来のPush許諾のダイアログ
post_notifications_dialog.png push_dialog.png

権限追加時の注意点

Android13 以上からは、新規インストール時に左側のPostNofitications許諾ダイアログを表示し、ユーザーに「許可」いただけない場合、Push受信ができなくなります。
TargetSDKVersionが33以上の場合と32以下の場合で、ダイアログの表示に関する挙動が変わりますのでご注意ください。


Targetsdkversionが33以上の場合

Android13端末ではPostNofitications許諾ダイアログのみ表示され、従来のPush許諾ダイアログは表示されません。
PostNofitications許諾ダイアログで選択した結果がユーザーのPush許諾状態としてサーバーへ送られます。


Targetsdkversion32以下の場合

Android13端末ではPostNofitications許諾ダイアログとPush許諾ダイアログが両方表示されます。
そのためPostNofitications許諾は「許可しない」、Push許諾は「OK」と相反する選択をした場合、Push許諾状態としてはカウントされますが、Push受信を受け取ることができません。


通知設定OFFの場合の注意ダイアログ追加

アプリの通知設定がOFF(PostNofitications許諾で許可しないとした)状態の時に
お知らせ設定画面の「お知らせを受信する」をON操作で注意ダイアログが表示されます。

このダイアログが不要の場合は

PopinfoSettings.java onPreferenceChanged 内の

    // Android13(API33)以上かつ「お知らせを受信する」がONへ変更された場合
    if (Build.VERSION.SDK_INT >= 33
            && key.equals(KEY_PUSH_ENABLED)
            && value) {
        PopinfoBaseSettings.showAppNotificationSettingsDialog(PopinfoSettings.this);
    }

を削除いただくことで、ダイアログが表示されなくなります。


このダイアログの文言を変更したい場合は

res/values/popinfo_strings.xml の

<string name="popinfo_enabled_mismatch_title">アプリの通知設定がOFFになっています</string>
<string name="popinfo_enabled_mismatch_message">通知設定画面を開きますか</string>
<string name="popinfo_enabled_mismatch_positive">開く</string>

を変更ください。


ver.8.0.0 以降

権限の追加

ver.8.0.0 以降では、必要に応じて新たに権限の追加が必要となります。

おおよその位置の権限

位置情報(GPS、Wi-fi、iBeacon)を利用している場合、権限の追加が必要となります。
android.permission.ACCESS_COARSE_LOCATION

※この権限は targetSdkVersion に関わらず追加してください

アラームの権限

targetSdkVersion 31 以上 に対応する場合に追加してください。
android.permission.SCHEDULE_EXACT_ALARM

Bluetooth の権限

iBeacon を利用しており、 targetSdkVersion 31 以上 に対応する場合に追加してください。
android.permission.BLUETOOTH_SCAN

Bluetooth の権限追加時の注意点

targetSdkVersion 30 以下から 31 以上へアップデートを行った際、Android 12 以上の端末では Popinfo.start() をコールしたタイミングで Bluetooth の権限の許諾ダイアログが表示されます。
※オプトインダイアログを任意表示にしている場合は表示されません

この許諾ダイアログの表示では以下の点に注意が必要です。

・許諾ダイアログを閉じた際、PopinfoCallback.onOptInEnded() がコールされます

また、オプトインダイアログを任意表示にしている場合は下記のようになります。

Popinfo.startLocationOptin() をコールした際に Bluetooth の権限の許諾ダイアログが表示されます

・許諾ダイアログを閉じた際、PopinfoCallback.onLocationOptInEnded() がコールされます

PopinfoCallback を利用して対象のメソッドで処理を行っている場合はご注意ください。

位置情報の取得に関する変更

GPS を利用する設定の場合、新たに Google Play Services のライブラリが必要となりました。

また、「お知らせ設定」画面の「位置情報の取得方法」について ver 8.0.0 未満では「GPS」「Network」と別々に分かれておりましたがアップデート以降は「GPS + Network」という表記となり、取得方法に関しては一つに変更されています。

どちらか、または両方を選択していた場合、アップデート時には自動的に「GPS + Network」が選択されます。
この設定について SDK から値を取得をする際は「fused」という文字列になっております。

ライブラリの組み込みについては「こちら」をご確認ください。

通知タップ時の内部処理フロー変更

アクティビティ PopinfoNotificationDispatcher が、プッシュ通知タップ時の内部処理フローに追加されました。

アクティビティの状態から分岐する処理などを独自に実装されている場合は、プッシュ通知タップ時も想定通り動作するかご確認ください。

ver.7.3.0 以降

アプリ内メッセージ コールバック変更

  • ver.7.3.0 で削除されたコールバック
    • onInappMessageTapAction
    • onEventActionTrigger
    • onInappMessageUpdate
  • ver.7.3.0 で追加されたコールバック
    • onInappMessageAppeared

削除されたコールバックを使用していた場合の変更方法

  • onInappMessageTapAction を使用されていた場合
    • アプリ内メッセージ用のクラスファイル(sdk/PopinfoInappMessageView.java)が
      新たに追加されました。
    • このクラスファイルをアプリ内へコピーし、カスタム(リネーム)いただくことで、
      以前のコールバッククラス(PopinfoCallback.java等)で使用されていた onInappMessageTapAction
      そのまま利用可能となります。
    • その場合は以下のようなAndroidManifestへの記載も必要となります。
          <activity
              android:name=".popinfo.MyPopinfoInappMessageView"
              android:screenOrientation="behind"
              android:exported="false"
              android:launchMode="singleTop"
              android:theme="@style/PopinfoInappMessageStyle" />
      
    • 同様に、 res/values/popinfo_values.xml への記載も必要となります。
      <!-- アプリ内メッセージ画面 -->
      <string name="popinfo_class_inappmessageview">jp.iridge.popinfo_sample.popinfo.MyPopinfoInappMessageView</string>
      
    • 画面のカスタマイズ方法については「こちら」を参考にカスタマイズしてください。
  • onEventActionTrigger を使用されていた場合
    • PopinfoCallback.java へ新しく onInappMessageAppeared コールバックが追加されましたのでご利用ください。
    • コールされるタイミングはアプリ内メッセージ表示の 直前 となり、
      false を返却することで、アプリ内メッセージの表示を取りやめることが可能です。
  • onInappMessageUpdate を使用されていた場合
    • PopinfoCallback.java へ新しく onInappMessageAppeared コールバックが追加されましたのでご利用ください。
    • このコールバック部分ではアプリ内メッセージの内容を取得しております。
    • 取得したアプリ内メッセージの内容を置換することで、表示内容を置き換えることが可能です。

アプリ内メッセージのサンプルコードにつきましては、「こちら」をご確認ください。


ver.7.2.0 以降

オプトインダイアログ任意表示

SDK 初回起動時のオプトインダイアログを任意で表示することが可能になりました。
具体的な使用方法はこちらをご参照ください。

ユーザー属性 一括変更メソッド追加

ユーザー属性を一括で変更するメソッドが追加されました。
以前の 1つずつ設定する方法(PopinfoUtils.setSegments(Context, String, String[]))は非推奨となりますため、利用しております場合はこちら を参考に変更してください。


ver.7.1.0 以降

フォアグラウンド位置情報利用

フォアグラウンドのみで位置情報(GPS/Wi-Fi/iBeacon)の利用を行えるようになりました。
フォアグラウンドのみで利用する場合は AndroidManifest.xmlandroid.permission.ACCESS_BACKGROUND_LOCATION 権限を削除してください。
この権限を削除している場合、SDK は OS バージョンに関係なくバックグラウンドで位置情報の取得を行わなくなります。


ver.7.0.0 以降

バックグラウンド位置情報の許諾

targetSdkVersion 30 以上で組みこんだアプリについて、Android 11 以上の端末を対象に位置情報の許諾の後に「バックグラウンド位置情報の許諾」というダイアログを表示するようにしております。
このダイアログはレイアウトとして popinfo-sdk/res/layout/popinfo_background_location_dialog.xml を使用しております。
ver.7.0.1 ではデフォルトで画像によるダイアログを表示しておりますが、文章のみの表示も可能なので必要な場合はこのファイルを編集してください。
また、このダイアログは「SDKの設定項目一覧」の POPINFO_SKIP_INIT_BACKGROUND_LOCATION で非表示にすることが可能となっております。


ver.6.0.1 以降

ヘッドアップ通知を維持する 非表示

設定画面でAndroid 10以上の場合に表示される「ヘッドアップ通知を維持する」の項目をデフォルトで非表示となるように変更しました。
こちらは機種・OS固有の問題により正常に動作しない場合があるため、使用する場合はご注意ください。


ver.6.0.0 以降

popinfo_prefs.xml 廃止

設定画面の popinfo-sdk/res/xml/popinfo_prefs.xml を廃止しました。
カスタマイズをしている場合、 popinfo-sdk/res/layout/popinfo_settings.xml をコピーして変更してください。

requestWindowFeature 削除

Popupクラスの初期化処理から requestWindowFeature を削除しました。
Popupクラスのカスタマイズをしている場合、合わせて requestWindowFeature の記述を削除してください。

通知チャンネル重要度

Android 10以上の端末でヘッドアップ通知をデフォルトで表示させるため、組み込み時の通知チャンネルの重要度を 4 に設定しています。
Android 10以上の初期値設定用として、popinfo-sdk/res/values/popinfo_values.xmlpopinfo_notification_channel_importance_q_or_higher を追加しておりますので、Android 9以下の場合と使い分けてください。
※ Notificationのカスタマイズを行っている場合は、この影響を受けません


ver.5.0.2 以降

APGバージョン引き上げ

Android Plugin for Gradleバージョンのサポート環境引き上げに伴い、お知らせ一覧レイアウト(popinfo-sdk/res/layout/popinfo_list.xml)の一部コンポーネントの ID を変更しました。

Lintエラー発生時の対応

お知らせ一覧レイアウトをカスタマイズしていてビルド時にLintエラーが出た場合は、下記の新バージョンのIDに変更してください。

[旧バージョン]
android:id="@+id/android:list"
android:id="@+id/android:empty"

[新バージョン]
android:id="@android:id/list"
android:id="@android:id/empty"

Android Plugin for Gradleバージョン毎にビルドの設定が変更されているため popinfo-sdk/src/build.gradle にはサポート範囲内の各バージョンに最適な設定がコメントアウトされておりますのでご確認ください。

初期化メソッド変更

下記の初期化メソッド2種が廃止されました。代わりに Popinfo.init(Application application) をご使用ください。

  • 廃止
    • Popinfo.registerLifecycleCallbacks(Application application)
    • Popinfo.registerPopinfoReceiver(Application application)

ver.4.x.x 以降

FCM トークン設定形式

FCMトークン はアプリモジュール側で取得して FANSHIP SDKへ設定する形式となります。
PopinfoApplicationクラスの設定方法も変更になっておりますのでご注意ください。


SDK ver.4.0.0 未満からのアップデートについて

ver.3.x.x 以前から ver.4.x.x 以上へのアッデート後は、FCMを使用したPUSH配信になります。
変更点が多いため再度手順に従い導入し直すことを推奨しておりますが、アップデートが必要な場合はサポート担当までお問合せ下さい。