Windows.Devices.Geolocation.Geofencing 命名空间

地理围栏是地理点周围的虚拟区域。 地理围栏 API 使应用程序能够及时提供地理上下文体验,而无需应用持续运行和使用设备资源。 地理围栏支持以下方案:当用户离开工作或家时弹出提醒,或者在用户到达商店范围内时显示优惠券。

应用定义感兴趣区域 (地理围栏) 和相应的触发条件,例如当用户进入或退出地理围栏时触发。 最后,应用注册为在满足触发条件时收到通知。 Windows 和 Windows Phone每个应用支持数百个地理围栏。 操作系统可有效管理所有应用的地理围栏跟踪。 当满足一个或多个地理围栏的触发条件时,即使未主动运行,关联的应用也会发出警报。 这种高容量、可感知电源的自适应地理围栏跟踪系统使你能够快速轻松地将位置触发的功能添加到应用。

有关使用地理围栏的完整指南,请参阅 地理围栏,从头到尾

地理围栏 API 使应用能够执行以下操作:

  • 创建一个或多个地理围栏或感兴趣的区域。
  • 请求在设备进入地理围栏时收到通知。
  • 请求在设备离开地理围栏时收到通知。
  • 指定地理围栏处于活动状态的时间窗口。
  • 指定每个地理围栏的停留时间 - 触发通知之前设备应加入或离开地理围栏的时间量。
  • 从应用的受监视地理围栏集合中动态添加和删除地理围栏。
  • 在应用处于活动状态时接收地理围栏事件。
  • 向系统注册,以在应用某个地理围栏的状态发生更改时启动后台任务。 应用必须调用 RequestAccessAsync ,然后才能运行任何后台任务。
  • 使用模拟器模拟设备移动并测试应用的地理围栏功能。

如果希望在满足其中一个地理围栏的触发条件时在后台启动应用,则需要使用后台任务并设置 LocationTrigger 来启动它。

重要

从 Windows 10 开始,在访问用户的位置之前调用 Geolocator 对象的 RequestAccessAsync 方法。 此时,你的应用必须位于前台,并且 RequestAccessAsync 必须从 UI 线程中进行调用。 在用户授予应用访问其位置的权限之前,你的应用无法访问位置数据。

Geofence

包含用于定义地理围栏的功能 () 要监视的地理区域。

GeofenceMonitor

包含有关受监视的 地理围栏 对象的信息。

GeofenceStateChangeReport

包含有关 地理围栏的状态更改的信息。

枚举

GeofenceMonitorStatus

指示 GeofenceMonitor 的当前状态。

GeofenceRemovalReason

指示删除 地理围栏 的原因。

GeofenceState

指示 地理围栏的当前状态。

MonitoredGeofenceStates

指示系统当前正在监视的地理围栏的状态。

注解

位置服务必须运行才能运行地理围栏。 如果禁用此服务,地理围栏调用将失败并引发异常。

应用必须在应用清单中声明位置功能才能使用地理围栏。