Integrate Pioneer ProbeData SDK
本章では、ユーザーアプリケーションにプローブデータ収集SDKを組み込む方法を説明します。
Androidの場合
Installation
- ユーザのサンプルプログラムのプロジェクト内でライブラリを格納するフォルダ(例:libs)にプローブデータ収集SDKのライブラリ形式のバイナリファイル(例:predictivesdk.aar)をコピーします。
- アプリのbuild.gradleにプローブデータ収集SDKのライブラリとその他のライブラリを追加します。
dependencies { implementation fileTree( dir:'libs', include:['*.jar','*.aar']) implementation "io.insert-koin:koin-android:3.3.0" def room_version = "2.5.0" implementation "androidx.room:room-runtime:$room_version" implementation "androidx.room:room-ktx:$room_version" annotationProcessor "androidx.room:room-compiler:$room_version" implementation 'com.squareup.okhttp3:okhttp:4.9.0' implementation 'com.google.android.gms:play-services-location:21.0.1' }
Usage
-
SDKのDIライブラリにKoinを使用しています。Koinの初期化をします。
- android.app.Applicationを継承したクラス内で初期化します。
override fun onCreate() { super.onCreate() startKoin {} }
- android.app.Applicationを継承したクラス内で初期化します。
-
ユーザーアプリケーション側でユーザーのランタイム権限を取得してください。
必要な権限は次の通りです。
android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION android.permission.ACTIVITY_RECOGNITION
-
プローブデータ収集SDK(PredictiveSdk())をインポートします。
import predictiveSdk
-
SDKインスタンスを作成し、コンテキストを譲渡します。
val sdk = PredictiveSdk() sdk.context(context)
-
以降はSDK内部動作の有効化~停止(Android/iOS共通)、を参照してください。
Option
Debugビルド時の内部動作のロギング設定です。
- Logcat出力
Name | Value | |
---|---|---|
predictiveSdk | verbose, debug, info, warn, error | ログレベル |
CheckPredSdk | verbose, debug, info, warn, error | ログレベル |
iOSの場合
Installation
Swift Package Manager
- Xcodeでxcodeprojを開き、対象のTARGETS → General → Frameworks, Libraries, and Embedded Content からプローブデータ収集SDKのバイナリファイル(.xcframework)を選択し追加します。
※[XcodeGenを使う場合] project.ymlにプローブデータ収集SDKを追加し xcodegen generate を実行します。targets: TARGET名: dependencies: + - framework: PredictiveSDK.xcframework
Usage
※各IFの詳細については別途IF仕様書をご参照いただくか、DocCで生成した仕様書をご覧ください。
- Xcode上からはProduct -> Build Documentation
Preparation
- アプリプロジェクトの
Info.plist
にキーを設定してください。
Key | 用途 |
---|---|
NSLocationWhenInUseUsageDescription | 位置情報 |
NSLocationAlwaysAndWhenInUseUsageDescription | 位置情報 |
NSMotionUsageDescription | モーションアクティビティ |
UIBackgroundModes | バックグラウンドでの位置情報 |
- プローブデータ収集SDK(PredictiveSdk())をインポートします。
import PredictiveSdk
- エントリポイントとなるsdkインスタンスを作成します。
let sdk = PredictiveSdk()
APIs
-
データ使用権限を取得します。
-
位置情報の権限取得
sdkResult = await sdk.requestLocationPermission()
-
モーションアクティビティの権限取得します。
sdkResult = await sdk.requestActivityPermission()
-
sdk.startBackgroundPositioning()
-
-
以降はSDK内部動作の有効化~停止(Android/iOS共通)、を参照してください。
Option
Debugビルド時の内部動作ロギング設定変更です。
- プロジェクトSchemeのArguments -> Environment Variables
Name | Value | |
---|---|---|
predLogLevel | verbose, debug, info[default], warn, error | ログレベル |
doRecPredLogs | true, false[default] | 標準出力から~/Library/Logs/PredictiveSDK/へのファイル出力変更 |
SDK内部動作の有効化~停止(Android/iOS共通)
-
SDKの内部動作を有効化します
この時点から、SDK内部でのセンサ・GNSSデータの収集、定期配信のタイマーを開始します。
具体的な動作は、activateを参照してください。
Android/iOS:activate
sdk.activate(SdkUploadRequest(...))
-
ユーザーアプリケーション側からプローブデータ収集SDKへ各種データを入力します
-
ナビ情報を入力します
具体的な動作は、addNaviInfoを参照してください。
Android/iOS:addNaviInfo
sdk.addNaviInfo(AppNaviInfo(...))
-
ルートアクションログを入力します
具体的な動作は、addRouteActionLogを参照してください。
Android/iOS:addRouteActionLog
sdk.addRouteActionLog(RouteActionLog(...))
-
車両情報を入力します
具体的な動作は、setVehicleInfoを参照してください。
Android/iOS:setVehicleInfo
sdk.setVehicleInfo(VehicleInfo(...))
-
認証パラメータを入力します
具体的な動作は、updateKeyを参照してください。
Android/iOS:updateKey
sdk.updateKey("newKey")
-
車両IDを入力します
activate時には、車両ID取得が未設定だった場合を想定しています。
具体的な動作は、setVehicleIdを参照してください。
Android/iOS:setVehicleId
sdkResult = sdk.setVehicleId("00000000-0...")
-
-
SDKの稼働状態を確認します
具体的な動作は、checkHealthを参照してください。
Android/iOS:checkHealth
val sdkStatus = sdk.checkHealth(needDetails)
-
SDKの内部動作を停止します
ユーザーアプリケーション側のライフサイクルに合わせて、任意のタイミングで呼び出してください。
SDK内部でのセンサ・GNSSデータの収集、定期配信のタイマーを停止します。
具体的な動作は、deactivateを参照してください。
Android/iOS:deactivate
sdk.deactivate()