• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.app.ability.FenceExtensionAbility (FenceExtensionAbility)
2
3The **FenceExtensionAbility** class provides geofence-related capabilities. It is inherited from the **ExtensionAbility** class.
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 14. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8> The APIs of this module can be used only in the stage model.
9
10## Modules to Import
11
12```ts
13import { FenceExtensionAbility } from '@kit.LocationKit';
14```
15
16## Attributes
17
18**System capability**: SystemCapability.Location.Location.Geofence
19
20| Name| Type| Readable| Writable| Description|
21| -------- | -------- | -------- | -------- | -------- |
22| context | [FenceExtensionContext](js-apis-app-ability-FenceExtensionContext.md) | Yes| No| Context of the Geofence service.|
23
24## FenceExtensionAbility.onFenceStatusChange
25
26onFenceStatusChange(transition: geoLocationManager.GeofenceTransition, additions: Record<string, string>): void;
27
28Represents the callback triggered when a geofence status change event is received. Service processing is then performed based on the event type and data.
29
30**System capability**: SystemCapability.Location.Location.Geofence
31
32**Parameters**
33| Name|  Type| Mandatory | Description |
34| ------------ | ------------ | ------------ | ------------ |
35|  transition |  [geoLocationManager.GeofenceTransition](js-apis-geoLocationManager.md#geofencetransition12) |  Yes| Geofence transition information, including the geofence ID and geofence event. |
36| additions  | Record<string, string>  | Yes | Additional information. |
37
38**Example**
39
40```ts
41import { FenceExtensionAbility, geoLocationManager } from '@kit.LocationKit';
42import { notificationManager } from '@kit.NotificationKit';
43import { Want, wantAgent } from '@kit.AbilityKit';
44
45export class MyFenceExtensionAbility extends FenceExtensionAbility {
46  onFenceStatusChange(transition: geoLocationManager.GeofenceTransition, additions: Record<string, string>): void {
47    // Receive the geofence status change event and process the service logic.
48    console.info(`on geofence transition,id:${transition.geofenceId},event:${transition.transitionEvent},additions:${JSON.stringify(additions)}`);
49
50    // Send a geofence notification.
51    let wantAgentInfo: wantAgent.WantAgentInfo = {
52      wants: [
53        {
54          bundleName: 'com.example.myapplication',
55          abilityName: 'EntryAbility',
56          parameters:
57          {
58            "geofenceId": transition?.geofenceId,
59            "transitionEvent": transition?.transitionEvent,
60          }
61        } as Want
62      ],
63      actionType: wantAgent.OperationType.START_ABILITY,
64      requestCode: 100
65    };
66    wantAgent.getWantAgent(wantAgentInfo).then((wantAgentMy) => {
67      let notificationRequest: notificationManager.NotificationRequest = {
68        id: 1,
69        content: {
70          notificationContentType: notificationManager.ContentType.NOTIFICATION_CONTENT_BASIC_TEXT,
71          normal: {
72            title: "Geofence Notification",
73            text: `on geofence transition,id:${transition.geofenceId},event:${transition.transitionEvent},additions:${JSON.stringify(additions)}`,
74          }
75        },
76        notificationSlotType: notificationManager.SlotType.SOCIAL_COMMUNICATION,
77        wantAgent: wantAgentMy
78      };
79      notificationManager.publish(notificationRequest);
80    });
81  }
82}
83```
84## FenceExtensionAbility.onDestroy
85
86onDestroy(): void;
87
88Represents the callback triggered when a **FenceExtensionAbility** destruction event is received.
89
90**System capability**: SystemCapability.Location.Location.Geofence
91
92**Example**
93
94```ts
95import { FenceExtensionAbility } from '@kit.LocationKit';
96
97class MyFenceExtensionAbility extends FenceExtensionAbility {
98  onDestroy(): void {
99    // Process the FenceExtensionAbility destruction event.
100    console.info(`on ability destroy`);
101  }
102}
103
104```
105