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