1# IGeofenceInterface
2
3
4## 概述
5
6定义对地理围栏模块进行基本操作的接口。
7
8接口包含注册回调函数,取消注册回调函数,添加圆形和多边形地理围栏,删除地理围栏,获取地理围栏状态信息,获取设备地理位置,下发基站离线数据库。
9
10**起始版本:** 4.0
11
12**相关模块:**[HdiLpfenceGeofence](_hdi_lpfence_geofence.md)
13
14
15## 汇总
16
17
18### Public 成员函数
19
20| 名称 | 描述 |
21| -------- | -------- |
22| [RegisterGeofenceCallback](#registergeofencecallback) ([in] [IGeofenceCallback](lpfence_interface_i_geofence_callback.md) callbackObj) | 注册回调函数。 |
23| [UnregisterGeofenceCallback](#unregistergeofencecallback) ([in] [IGeofenceCallback](lpfence_interface_i_geofence_callback.md) callbackObj) | 取消注册回调函数。 |
24| [AddCircleGeofences](#addcirclegeofences) ([in] struct [GeofenceCircleRequest](lpfence_geofence_circle_request.md)[] circleGeofences) | 添加圆形地理围栏。 |
25| [AddPolygonGeofences](#addpolygongeofences) ([in] struct [GeofencePolygonRequest](lpfence_geofence_polygon_request.md)[] polygonGeofences) | 添加多边形地理围栏。 |
26| [RemoveGeofences](#removegeofences) ([in] int[] geofenceId) | 删除地理围栏。 |
27| [GetGeofenceStatus](#getgeofencestatus) ([in] int geofenceId) | 获取当前设备与一个地理围栏的状态关系。 |
28| [GetGeofenceLocation](#getgeofencelocation) () | 获取最新的位置信息。 |
29| [GetGeofenceSize](#getgeofencesize) () | 获取地理围栏使用信息。 |
30| [SendCellOfflineDb](#sendcellofflinedb) ([in] struct [OfflineDb](lpfence_offline_db.md) dbData, [in] int cellType) | 下发基站离线数据库数据。 |
31
32
33## 成员函数说明
34
35
36### AddCircleGeofences()
37
38```
39IGeofenceInterface::AddCircleGeofences ([in] struct GeofenceCircleRequest[] circleGeofences)
40```
41
42**描述**
43
44
45添加圆形地理围栏。
46
47支持一次添加多个圆形地理围栏
48
49**起始版本:** 4.0
50
51**参数:**
52
53| 名称 | 描述 |
54| -------- | -------- |
55| circleGeofences | 添加圆形围栏信息。详见[GeofenceCircleRequest](lpfence_geofence_circle_request.md)。 |
56
57**返回:**
58
59如果添加成功,则返回0。
60
61如果添加失败,则返回负值。
62
63
64### AddPolygonGeofences()
65
66```
67IGeofenceInterface::AddPolygonGeofences ([in] struct GeofencePolygonRequest[] polygonGeofences)
68```
69
70**描述**
71
72
73添加多边形地理围栏。
74
75支持一次添加多个多边形地理围栏
76
77**起始版本:** 4.0
78
79**参数:**
80
81| 名称 | 描述 |
82| -------- | -------- |
83| polygonGeofences | 添加多边形围栏信息。详见[GeofencePolygonRequest](lpfence_geofence_polygon_request.md)。 |
84
85**返回:**
86
87如果添加成功,则返回0。
88
89如果添加失败,则返回负值。
90
91
92### GetGeofenceLocation()
93
94```
95IGeofenceInterface::GetGeofenceLocation ()
96```
97
98**描述**
99
100
101获取最新的位置信息。
102
103位置信息通过回调函数上报。详见[OnGetCurrentLocation](lpfence_interface_i_geofence_callback.md#ongetcurrentlocation)定义。
104
105**起始版本:** 4.0
106
107**返回:**
108
109如果调用成功,则返回0。
110
111如果调用失败,则返回负值。
112
113
114### GetGeofenceSize()
115
116```
117IGeofenceInterface::GetGeofenceSize ()
118```
119
120**描述**
121
122
123获取地理围栏使用信息。
124
125查看当前设备支持添加的地理围栏最大个数和已添加的地理围栏个数。通过回调函数上报通知,详见[OnGetGeofenceSizeCb](lpfence_interface_i_geofence_callback.md#ongetgeofencesizecb)。
126
127**起始版本:** 4.0
128
129**返回:**
130
131如果调用成功,则返回0。
132
133如果调用失败,则返回负值。
134
135
136### GetGeofenceStatus()
137
138```
139IGeofenceInterface::GetGeofenceStatus ([in] int geofenceId)
140```
141
142**描述**
143
144
145获取当前设备与一个地理围栏的状态关系。
146
147设备与地理围栏的状态关系详见[GeofenceTransition](_hdi_lpfence_geofence.md#geofencetransition)定义。
148
149**起始版本:** 4.0
150
151**参数:**
152
153| 名称 | 描述 |
154| -------- | -------- |
155| geofenceId | 地理围栏id号。 |
156
157**返回:**
158
159返回位置关系。详见[GeofenceTransition](_hdi_lpfence_geofence.md#geofencetransition)定义。
160
161如果调用失败,则返回负值。
162
163
164### RegisterGeofenceCallback()
165
166```
167IGeofenceInterface::RegisterGeofenceCallback ([in] IGeofenceCallback callbackObj)
168```
169
170**描述**
171
172
173注册回调函数。
174
175用户在开启地理围栏功能前,需要先注册该回调函数。当地理围栏状态发生变化时,会通过回调函数进行上报。
176
177**起始版本:** 4.0
178
179**参数:**
180
181| 名称 | 描述 |
182| -------- | -------- |
183| callbackObj | 要注册的回调函数,只需成功订阅一次,无需重复订阅。详见[IGeofenceCallback](lpfence_interface_i_geofence_callback.md)。 |
184
185**返回:**
186
187如果注册回调函数成功,则返回0。
188
189如果注册回调函数失败,则返回负值。
190
191
192### RemoveGeofences()
193
194```
195IGeofenceInterface::RemoveGeofences ([in] int[] geofenceId)
196```
197
198**描述**
199
200
201删除地理围栏。
202
203支持一次删除多个地理围栏。
204
205**起始版本:** 4.0
206
207**参数:**
208
209| 名称 | 描述 |
210| -------- | -------- |
211| geofenceId | 地理围栏id号。详见[GeofenceCircleRequest](lpfence_geofence_circle_request.md)和[GeofencePolygonRequest](lpfence_geofence_polygon_request.md)。 |
212
213**返回:**
214
215如果删除成功,则返回0。
216
217如果删除失败,则返回负值。
218
219
220### SendCellOfflineDb()
221
222```
223IGeofenceInterface::SendCellOfflineDb ([in] struct OfflineDb dbData, [in] int cellType )
224```
225
226**描述**
227
228
229下发基站离线数据库数据。
230
231若请求离线数据库数据成功,则上层服务通过该接口将数据下发。
232
233**起始版本:** 4.0
234
235**参数:**
236
237| 名称 | 描述 |
238| -------- | -------- |
239| dbData | 基站离线数据库数据。详见[OfflineDb](lpfence_offline_db.md)定义。 |
240| cellType | 基站主区的移动通信技术代。详见[GeofenceCellType](_hdi_lpfence_geofence.md#geofencecelltype)定义。 |
241
242**返回:**
243
244如果调用成功,则返回0。
245
246如果调用失败,则返回负值。
247
248
249### UnregisterGeofenceCallback()
250
251```
252IGeofenceInterface::UnregisterGeofenceCallback ([in] IGeofenceCallback callbackObj)
253```
254
255**描述**
256
257
258取消注册回调函数。
259
260取消之前注册的回调函数。当不需要使用地理围栏功能,或需要更换回调函数时,需要取消注册回调函数。
261
262**起始版本:** 4.0
263
264**参数:**
265
266| 名称 | 描述 |
267| -------- | -------- |
268| callbackObj | 要取消注册的回调函数,只需成功取消订阅一次,无需重复取消订阅。详见[IGeofenceCallback](lpfence_interface_i_geofence_callback.md)。 |
269
270**返回:**
271
272如果取消注册回调函数成功,则返回0。
273
274如果取消注册回调函数失败,则返回负值。
275