プレースモニター拡張機能をコアイベントハブに登録します。
このAPIの構文とコード例を次に示します。
Javaの構文を次に示します。
public static void registerExtension();
Experience PlatformSDKの残りの部分を初期化するonCreate
メソッドでこのメソッドを呼び出します。
public class MobileApp extends Application {
@Override
public void onCreate(){
super.onCreate();
MobileCore.setApplication(this);
try {
PlacesMonitor.registerExtension();
} catch (Exception e) {
//Log the exception
}
}
}
このAPIの構文とコード例を次に示します。
Objective-Cの構文を次に示します。
+ (void) registerExtension;
このメソッドは、AppDelegate
のdidFinishLaunchingWithOptions
delegateメソッドで呼び出す必要があります。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[ACPCore configureWithAppId:@"launch-appID"];
[ACPPlaces registerExtension];
[ACPPlacesMonitor registerExtension];
[ACPCore start:^{
// do other initialization of the SDK
}];
return YES;
}
Places Monitor拡張機能の現在のバージョンを返す
このAPIの構文とコード例を次に示します。
public static String extensionVersion();
String placesMonitorVersion = PlacesMonitor.extensionVersion();
このAPIの構文とコード例を次に示します。
+ (nonnull NSString*) extensionVersion;
NSString *placesMonitorVersion = [ACPPlacesMonitor extensionVersion];
デバイスの場所の追跡を開始し、周辺の場所を監視します。
デバイスの場所を使用する権限がユーザーによって付与されていない場合は、start
APIへの最初の呼び出しによって、ユーザーに許可を求めるメッセージが表示されます。
このAPIの構文とコード例を次に示します。
public static void start();
PlacesMonitor.start();
監視を開始するには、ロケーションサービスに必要な認証が必要です。
start
APIへの最初の呼び出しは、アプリケーションに対して設定されているPlaces Serviceを使用するための認証を要求します。ACPPlacesMonitorMode
に基づいてユーザーの場所を追跡します。 デフォルトでは、モニターはACPPlacesMonitorModeSignificantChanges
を使用します。SDKの初期化が終了する前に開始の監視の呼び出しが行われた場合は、無視される場合があります。
ACPCore::start:
に提供されたコールバックからstart
を呼び出すことで、SDKの初期化が完了したことを確認できます。
このAPIの構文とコード例を次に示します。
+ (void) start;
SDKの初期化時にプレースモニターを開始する:
[ACPCore start:^{
[ACPPlacesMonitor start];
}];
アプリの実行後にプレースモニターを起動する:
[ACPPlacesMonitor start];
デバイスの位置の追跡を停止します。
このAPIの構文とコード例を次に示します。
public static void stop();
PlacesMonitor.stop();
このAPIの構文とコード例を次に示します。
+ (void) stop;
[ACPPlacesMonitor stop];
このAPIは、デバイスの場所を即時に更新する場合に使用します。 このAPIを呼び出すと、デバイスは指定した正確さのレベルで位置を判断しようとします。 このプロセスは、拡張機能によって監視される近くのPOIも更新します。
このAPIの構文とコード例を次に示します。
public static void updateLocation();
PlacesMonitor.updateLocation();
+ (void) updateLocationNow;
[ACPPlacesMonitor updateLocationNow];
このAPIを使用して、ユーザーが入力を求められ、Places Serviceでの使用を承認された場所の権限のタイプを設定できます。
このAPIは、ユーザーに選択を求める場所の権限リクエストのタイプを設定します。
このAPIは、Android 10以降のデバイスでのみ有効です。
ユーザーに表示する適切な認証プロンプトを設定するには、このAPIをPlacesMonitor.start()
の前に呼び出します。 このメソッドを呼び出すと、アクティブに監視しながら、場所の権限レベルが要求された権限の値にアップグレードされます。 要求された認証レベルが既に提供または拒否されている場合、またはALWAYS_ALLOW
からWHILE_USING_APP
に権限をダウングレードしようとした場合、このメソッドは無効です。
場所の権限は、次のいずれかの値に設定できます。
PlacesMonitorLocationPermission.WHILE_USING_APP
この値を指定すると、アプリケーションの使用中にのみデバイスの場所にアクセスするようユーザーに促します。 アクティビティが前景で実行されているなど、ユーザーがデバイス画面でアプリを表示している場合、アプリは使用中と見なされます。
アプリのマニフェストファイルにACCESS_FINE_LOCATIONユーザー権限が設定されていることを確認します。
PlacesMonitorLocationPermission.ALWAYS_ALLOW
この値は、アプリケーションがバックグラウンドになっている場合でも、デバイスの場所にアクセスするようユーザーに促します。
アプリのマニフェストファイルにACCESS_BACKGROUND_LOCATIONとACCESS_FINE_LOCATIONのユーザー権限が設定されていることを確認します。
PlacesMonitorLocationPermission.ALWAYS_ALLOW
は、デフォルトの場所権限の値です。
アプリケーションユーザーにWHILE_USING_APP
権限が与えられた場合、ジオフェンスはオペレーティングシステムに登録されません。 その結果、プレースモニター拡張機能は、バックグラウンドで発生している地域でのトリガーの入口/出口イベントを行いません。
このAPIの構文とコード例を次に示します。
public static void setLocationPermission(final PlacesMonitorLocationPermission placesMonitorLocationPermission)
WHILE_USING_APP
権限をリクエストするには:
// set the location permission
PlacesMonitor.setLocationPermission(PlacesMonitorLocationPermission.WHILE_USING_APP);
// start monitoring
PlacesMonitor.start()
ALWAYS_ALLOW
権限にアップグレードするには:
// upgrade the permission level
PlacesMonitor.setLocationPermission(PlacesMonitorLocationPermission.ALWAYS_ALLOW);
このAPIは、ユーザーに対してプロンプトが表示される場所の認証要求のタイプを設定します。
ユーザーに表示する適切な認証プロンプトを設定するには、[ACPPlacesMonitor start]
を呼び出す前にSetRequestAuthorizationLevel
を呼び出します。 ユーザーに表示する適切な認証プロンプトを設定するには、このAPIを[ACPPlacesMonitor start]
の前に呼び出します。 アクティブな監視中にこのメソッドを呼び出すと、場所の認証レベルが要求された認証値にアップグレードされます。 要求された認証レベルが、既にアプリケーションユーザーによって提供または拒否されている場合、またはACPPlacesRequestAuthorizationLevelAlways
からACPPlacesRequestAuthorizationLevelWhenInUse
への権限のダウングレードがある場合、このメソッドは無効です。
認証レベルは、次のいずれかの値に設定できます。
ACPPlacesRequestAuthorizationLevelWhenInUse
アプリの使用中にPlaces Serviceを使用するユーザーの権限を要求します。 ユーザープロンプトには、アプリのInfo.plistファイルのNSLocationWhenInUseUsageDescription
キーのテキストが含まれ、このメソッドを呼び出す場合はそのキーの存在が必要です。 詳しくは、requestWhenInUseAuthorization](https://developer.apple.com/documentation/corelocation/cllocationmanager/1620562-requestwheninuseauthorization)の[Appleのドキュメントを参照してください。
ACPPlacesRequestMonitorAuthorizationLevelAlways
アプリがバックグラウンドにある場合でも、この列挙を使用してPlaces Serviceを要求します。 アプリのInfo.plistにNSLocationAlwaysUsageDescription
キーとNSLocationWhenInUseUsageDescription
キーが必要です。 これらのキーは、ユーザープロンプトで表示されるテキストを定義します。 詳しくは、requestAlwaysAuthorization](https://developer.apple.com/documentation/corelocation/cllocationmanager/1620551-requestalwaysauthorization)の[Appleのドキュメントを参照してください。
ACPPlacesRequestAuthorizationLevelAlways
は、デフォルトのリクエスト認証値です。
ACPPlacesRequestAuthorizationLevelWhenInUse
権限の使用を承認したアプリケーションは、バックグラウンドで発生している地域でトリガーの入口/出口イベントを行いません。
このAPIの構文とコード例を次に示します。
+ (void) setRequestAuthorizationLevel: (ACPPlacesRequestAuthorizationLevel) requestAuthorizationLevel;
ACPPlacesRequestAuthorizationLevelWhenInUse
権限をリクエストするには:
// set the request authorization level
[ACPPlacesMonitor setRequestAuthorizationLevel: ACPPlacesRequestAuthorizationLevelWhenInUse];
// start monitoring
[ACPPlacesMonitor start];
ACPPlacesRequestAuthorizationLevelAlways
認証にアップグレードするには:
// set the request authorization level
[ACPPlacesMonitor setRequestAuthorizationLevel: ACPPlacesRequestAuthorizationLevelAlways];
監視は、次のいずれかの値に設定できます。
ACPPlacesMonitorModeContinuous
監視拡張機能は、場所をより頻繁に受信し、処理します。 この監視方法は、大量の電力を消費しますが、高い精度を提供します。 詳しくは、継続的な監視に関するAppleのドキュメントを参照してください。
ACPPlacesMonitorModeSignificantChanges
監視拡張機能は、デバイスが以前に処理された場所からかなり離れた場所に移動した後にのみ、場所の更新を受信して処理します。 この監視方法は、継続的な監視方法よりも消費電力が少なくなります。 詳しくは、重要な監視に関するAppleのドキュメントを参照してください
このAPIの構文とコード例を次に示します。
+ (void) setPlacesMonitorMode: (ACPPlacesMonitorMode) monitorMode;
[ACPPlacesMonitor setPlacesMonitorMode:ACPPlacesMonitorModeSignificantChanges];