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