# @ohos.app.ability.FenceExtensionAbility (FenceExtensionAbility) FenceExtensionAbility为开发者提供的地理围栏相关的能力,继承自ExtensionAbility。 > **说明:** > > 本模块首批接口从API version 14开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > 本模块接口仅可在Stage模型下使用。 ## 导入模块 ```ts import FenceExtensionAbility from '@kit.LocationKit'; ``` ## 属性 **系统能力**:SystemCapability.Location.Location.Geofence | 名称 | 类型 | 可读 | 可写 | 说明 | | -------- | -------- | -------- | -------- | -------- | | context | FenceExtensionContext | 是 | 否 | 围栏服务上下文。 | ## FenceExtensionAbility.onFenceStatusChange onFenceStatusChange(transition: geoLocationManager.GeofenceTransition, additions: Record<string, string>): void; 接收系统通知的地理围栏事件,根据围栏事件类型和数据进行相应处理。 **系统能力**:SystemCapability.Location.Location.Geofence **参数:** | 参数名 | 类型 | 必填 | 说明 | | ------------ | ------------ | ------------ | ------------ | | transition | [geoLocationManager.GeofenceTransition](js-apis-geoLocationManager.md#geofencetransition12) | 是 | 地理围栏事件信息;包含地理围栏ID和具体的地理围栏事件。 | | additions | Record<string, string> | 是 | 附加信息 | **示例:** ```ts import { FenceExtensionAbility, geoLocationManager } from '@kit.LocationKit'; import { notificationManager } from '@kit.NotificationKit'; import { wantAgent } from '@kit.AbilityKit'; export default class MyFenceExtensionAbility extends FenceExtensionAbility { async onFenceStatusChange(transition: geoLocationManager.GeofenceTransition, additions: Record): void { // 接受围栏状态变化事件,处理业务逻辑 hilog.info(0x0000, "TAG", `on geofence transition,id:${transition.geofenceId},event:${transition.transitionEvent},additions:${JSON.stringify(additions)}`); // 可以发送围栏业务通知 let wantAgentInfo: wantAgent.WantAgentInfo = { wants: [ { bundleName: 'com.example.myapplication', abilityName: 'EntryAbility', parameters: { "geofenceId": transition?.geofenceId, "transitionEvent": transition?.transitionEvent, } } as Want ], actionType: wantAgent.OperationType.START_ABILITY, requestCode: 100 }; let wantAgentMy = await wantAgent.getWantAgent(wantAgentInfo); let notificationRequest: notificationManager.NotificationRequest = { id: 1, content: { notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT, normal: { title: `围栏通知`, text: `on geofence transition,id:${transition.geofenceId},event:${transition.transitionEvent},additions:${JSON.stringify(additions)}`, } }, notificationSlotType: notificationManager.SlotType.SOCIAL_COMMUNICATION, wantAgent: wantAgentMy }; notificationManager.publish(notificationRequest); } } ``` ## FenceExtensionAbility.onDestroy onDestroy(): void; 接收FenceExtensionAbility的销毁事件并处理,会在FenceExtensionAbility销毁前回调。 **系统能力**:SystemCapability.Location.Location.Geofence **示例:** ```ts import { FenceExtensionAbility } from '@kit.LocationKit'; class MyFenceExtensionAbility extends FenceExtensionAbility { onDestroy(): void { // 处理ability销毁事件 hilog.info(0x0000, "TAG", `on ability destroy`); } } ```