Show Menu
主题×

使用地点监视器扩展

要使用“地点监视器”扩展,请完成以下任务:

在Experience Platform Launch中安装Places Monitor扩展

  1. In Experience Platform Launch, click the **Extensions**tab.
  2. 在选项 Catalog 卡上,找到扩展 Places Monitor 名,然后单击“ 安装”
  3. 单击 Save
  4. 按照发布过程更新SDK配置。

配置地点监视器扩展

“地点监视器”扩展没有配置任务。

将Places Monitor扩展添加到您的应用程序

您需要将“地点监视器”扩展添加到Android或iOS应用程序。

Android

在Android中,完成以下步骤:

Java

  1. 使用应用程序的Gradle文件将Places Monitor扩展和Places扩展添加到您的项目。
  2. 在Gradle文件中还包括最新的Google Location服务。
    implementation 'com.adobe.marketing.mobile:places:1.+'
    implementation 'com.adobe.marketing.mobile:places-monitor:1.+'
    implementation 'com.adobe.marketing.mobile:sdk-core:1.+'
    implementation 'com.google.android.gms:play-services-location:16.0.0'
    
    
  3. 在应用程序的主活动中导入“地点监视器”扩展。
    import com.adobe.marketing.mobile.PlacesMonitor;
    
    

iOS

在iOS中,完成以下步骤:
  1. 通过添加,通过Cocoapod将库添 Podfile 加到项目 pod 'ACPPlacesMonitor'
  2. 导入地点和地点监视器库:

Objective-C

#import "ACPCore.h"
#import "ACPPlaces.h"
#import "ACPPlacesMonitor.h"

Swift

import ACPCore
import ACPPlaces
import ACPPlacesMonitor

注册并启动地点监视器

您需要注册并启动Android或iOS中的地点监视器。

Android

在Android中,完成以下步骤:

Java

在您的应用程序方法中, OnCreate 注册Places Monitor扩展:
public class MobileApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        MobileCore.setApplication(this);
        MobileCore.ConfigureWithAppId("yourAppId");
        try {
            PlacesMonitor.registerExtension(); //Register PlacesMonitor with Mobile Core
            Places.registerExtension(); //Register Places with Mobile Core
            MobileCore.start(null);
            PlacesMonitor.start();//Start monitoring the geo-fences
        } catch (Exception e) {
            //Log the exception
        }
    }
}

地点监视取决于地点扩展。 手动安装 Places Monitor 扩展时,请确保同时将 places.aar 库添加到项目中。

iOS

在iOS应用程序中 application:didFinishLaunchingWithOptions ,使用Mobile Core注册 PlacesMonitor 和放置:

Objective-C

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
    [ACPCore configureWithAppId:@"yourAppId"];
    [ACPPlaces registerExtension];
    [ACPPlacesMonitor registerExtension];
    [ACPCore start:^{            
        // do other initialization required for the SDK
        [ACPPlacesMonitor start];
    }];

    return YES;
}

Swift

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    ACPCore.configure(withAppId: "yourAppId")
    ACPPlaces.registerExtension()       
    ACPPlacesMonitor.registerExtension()
    ACPCore.start({
        // do other initialization required for the SDK
        ACPPlacesMonitor.start()
    })

    // Override point for customization after application launch.        
    return true
}

地点监视取决于地点扩展。 When manually installing the Places Monitor extension, ensure that you also add the libACPPlaces_iOS.a library to your project.

向清单添加权限

Android

Java
对于所有版本的Android,要声明您的应用程序需要位置权限,请在应用程序清单中添加一个元素,作为顶级元素的子 <uses-permission>``<manifest> 项。 对于以API级别29及更高版本为目标的Android应用程序,要允许应用程序访问后台位置,请包括ACCESS_BACKGROUND_LOCATION权限。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.adobe.placesapp">
  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    // Only for Android apps targeting API level 29 and above
  <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
  <application>        
    ...    
  </application>
</manifest>

在后台启用位置更新

iOS支持将位置事件交付到已暂停或不再运行的应用程序。 要在后台接收地点监视器扩展的位置更新,请在中为您的应用程序配置位置更新功能 Xcode.background-location-updates

配置plist键

应用程序的文件中必须包含以下键 Info.plist :
  • NSLocationWhenInUseUsageDescription -文本应描述应用程序在前台运行时请求访问用户位置信息的原因。
  • NSLocationAlwaysAndWhenInUseUsageDescription -文本应描述应用程序始终请求访问用户位置信息的原因。
如果您的应用程序支持iOS 10及更早版本, NSLocationAlwaysUsageDescription 则该键也是必需的。