位置情報 配信
FANSHIP SDK では位置情報を利用することで、プッシュ通知の配信方法として「GPS 配信」「Wi-Fi 配信」「Bluetooth 配信」を行えるようになります。
また、同時に位置情報の蓄積も行われるので、セグメント機能を用いた配信に利用するといったことなども可能となります。
位置情報を利用をする場合は下記手順で実装してください。
1. meta-data の追加
下記の項目を AndroidManifest.xml に追加してください。
<!-- 使用する位置情報の取得方法を設定してください。※ PUSH配信のみ使用する場合 「""」 空の文字列を設定してください。-->
<meta-data
android:name="POPINFO_LOCATION_SOURCES"
android:value="GPS,Wi-Fi,iBeacon" />
<!-- Wi-Fi、Bluetooth による来店検知機能を利用する場合 true に設定してください。 -->
<meta-data
android:name="POPINFO_USES_ANALYTICS"
android:value="false" />
※ この例では GPS、Wi-fi、iBeacon をすべて使用する設定となります。
2. 権限の追加
下記の権限を AndroidManifest.xml に追加してください。
<!-- meta-dataで POPINFO_LOCATION_SOURCESに GPS または Wi-Fi または iBeacon を設定する場合に記述してください -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- meta-dataで POPINFO_LOCATION_SOURCESに GPS または Wi-Fi を設定する場合に記述してください -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- meta-dataで POPINFO_LOCATION_SOURCESに iBeacon を設定する場合に記述してください -->
<uses-permission android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
<!-- GPS または Wi-Fi または iBeacon をバックグラウンドでも利用する場合に記述してください。 ※バックグラウンドでも利用する場合、GooglePlay への申請時に別途バックグラウンド位置情報のための申請が必要となります -->
<!-- <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> -->
<!-- meta-dataで POPINFO_LOCATION_SOURCESに GPS または Wi-Fi または iBeacon を設定する場合に記述してください -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- meta-dataで POPINFO_LOCATION_SOURCESに GPS または Wi-Fi を設定する場合に記述してください -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- meta-dataで POPINFO_LOCATION_SOURCESに iBeacon を設定する場合に記述してください -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<!-- GPS または Wi-Fi または iBeacon をバックグラウンドでも利用する場合に記述してください。 ※バックグラウンドでも利用する場合、GooglePlay への申請時に別途バックグラウンド位置情報のための申請が必要となります -->
<!-- <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" /> -->
※ この例では GPS、Wi-fi、iBeacon をすべて使用する設定となります。
3. バックグラウンドで位置情報を利用する
バックグラウンドで位置情報へアクセスするために「2. 権限の追加」でコメントアウトされていた権限を追加します。
<!-- GPS または Wi-Fi または iBeacon をバックグラウンドでも利用する場合に記述してください。 ※バックグラウンドでも利用する場合、GooglePlay への申請時に別途バックグラウンド位置情報のための申請が必要となります -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
バックグラウンドで位置情報へアクセスするアプリは、データのアクセスについてアプリ内でユーザーに開示をする必要があります。
meta-data として POPINFO_SKIP_INIT_AGREEMENT を追加し、 false に設定してインフォメーションダイアログを表示してください。
<meta-data
android:name="POPINFO_SKIP_INIT_AGREEMENT"
android:value="false" />
バックグラウンドでの位置情報へのアクセスについて
Google の位置情報に関するポリシーに変更が入り、バックグラウンドで位置情報へアクセスするアプリは通常の申請とは別に承認を受ける必要ができました。
参照 : バックグラウンドでの位置情報へのアクセスをリクエストする
この項の設定は承認を受けるために必要となる 「アプリ内での開示」 について、インフォメーションダイアログを使用して開示の文言を表示する方法となります。
※アプリ内での開示に関する要件は 2020年11月 現在のものをベースにしております
※文言の内容は res/values/popinfo_strings.xml よりカスタマイズが可能です
4. ライブラリの追加
GPS を使用する設定の場合、Google Play Services を利用しているためライブラリの追加が必要となります。
build.gradle および、AndroidManifest.xml に下記の設定を追加してください。
dependencies {
// ...
implementation 'com.google.android.gms:play-services-location:18.0.0'
}
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
5. おおよその位置について
Android 12 以上の端末では、位置情報の許諾で 「おおよその位置」 の選択が可能となりました。
「おおよその位置」をユーザーが選択している場合、「GPS 配信」「Wi-Fi 配信」「Bluetooth 配信」は届かなくなるためご注意ください。