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