1c5e268c6Sopenharmony_ci/* 2c5e268c6Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 3c5e268c6Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4c5e268c6Sopenharmony_ci * you may not use this file except in compliance with the License. 5c5e268c6Sopenharmony_ci * You may obtain a copy of the License at 6c5e268c6Sopenharmony_ci * 7c5e268c6Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8c5e268c6Sopenharmony_ci * 9c5e268c6Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10c5e268c6Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11c5e268c6Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12c5e268c6Sopenharmony_ci * See the License for the specific language governing permissions and 13c5e268c6Sopenharmony_ci * limitations under the License. 14c5e268c6Sopenharmony_ci */ 15c5e268c6Sopenharmony_ci 16c5e268c6Sopenharmony_ci/* 17c5e268c6Sopenharmony_ci * @addtogroup HdiGeofence 18c5e268c6Sopenharmony_ci * @{ 19c5e268c6Sopenharmony_ci * 20c5e268c6Sopenharmony_ci * @brief Provides unified APIs for the GNSS geofence service. 21c5e268c6Sopenharmony_ci * 22c5e268c6Sopenharmony_ci * A gnss service module can use the interfaces of this module to add fences, and delete fences, and monitor 23c5e268c6Sopenharmony_ci * fence status changes. 24c5e268c6Sopenharmony_ci * 25c5e268c6Sopenharmony_ci * @since 3.2 26c5e268c6Sopenharmony_ci */ 27c5e268c6Sopenharmony_ci 28c5e268c6Sopenharmony_ci/* 29c5e268c6Sopenharmony_ci * @file IGeofenceInterface.idl 30c5e268c6Sopenharmony_ci * 31c5e268c6Sopenharmony_ci * @brief Define interfaces such as adding fences, deleting fences, and setting callback. 32c5e268c6Sopenharmony_ci * 33c5e268c6Sopenharmony_ci * @since 3.2 34c5e268c6Sopenharmony_ci * @version 1.0 35c5e268c6Sopenharmony_ci */ 36c5e268c6Sopenharmony_ci 37c5e268c6Sopenharmony_cipackage ohos.hdi.location.geofence.v1_0; 38c5e268c6Sopenharmony_ci 39c5e268c6Sopenharmony_ciimport ohos.hdi.location.geofence.v1_0.IGeofenceCallback; 40c5e268c6Sopenharmony_ciimport ohos.hdi.location.geofence.v1_0.GeofenceTypes; 41c5e268c6Sopenharmony_ci 42c5e268c6Sopenharmony_ci/* 43c5e268c6Sopenharmony_ci * @brief Defines the functions for performing basic operations on geofence. 44c5e268c6Sopenharmony_ci * 45c5e268c6Sopenharmony_ci * The operations include adding fences, deleting fences, and setting callback. 46c5e268c6Sopenharmony_ci * 47c5e268c6Sopenharmony_ci * @since 3.2 48c5e268c6Sopenharmony_ci */ 49c5e268c6Sopenharmony_ciinterface IGeofenceInterface { 50c5e268c6Sopenharmony_ci /* 51c5e268c6Sopenharmony_ci * @brief Set callback function for geofence. 52c5e268c6Sopenharmony_ci * 53c5e268c6Sopenharmony_ci * @param callback Indicates callback function of geofence, gnss driver use this callback to report 54c5e268c6Sopenharmony_ci * the geofence service Availability, and report geofence event, and report the geofence operation result. 55c5e268c6Sopenharmony_ci * For details, see {@link IGeofenceCallback}. 56c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if setup callback successed; returns a negative value otherwise. 57c5e268c6Sopenharmony_ci * 58c5e268c6Sopenharmony_ci * @since 3.2 59c5e268c6Sopenharmony_ci * @version 1.0 60c5e268c6Sopenharmony_ci */ 61c5e268c6Sopenharmony_ci SetGeofenceCallback([in] IGeofenceCallback callbackObj); 62c5e268c6Sopenharmony_ci 63c5e268c6Sopenharmony_ci /* 64c5e268c6Sopenharmony_ci * @brief Add a geofence. 65c5e268c6Sopenharmony_ci * 66c5e268c6Sopenharmony_ci * @param fence Indicates geofence configuration parameters. For details, see {@link GeofenceInfo}. 67c5e268c6Sopenharmony_ci * @param monitorEvent Indicates the geofence events that the application needs to listen to. 68c5e268c6Sopenharmony_ci * For details, see {@link GeofenceEvent}. 69c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if add geofence successed; returns a negative value otherwise. 70c5e268c6Sopenharmony_ci * 71c5e268c6Sopenharmony_ci * @since 3.2 72c5e268c6Sopenharmony_ci * @version 1.0 73c5e268c6Sopenharmony_ci */ 74c5e268c6Sopenharmony_ci AddGnssGeofence([in] struct GeofenceInfo fence, 75c5e268c6Sopenharmony_ci [in] enum GeofenceEvent monitorEvent); 76c5e268c6Sopenharmony_ci 77c5e268c6Sopenharmony_ci /* 78c5e268c6Sopenharmony_ci * @brief Delete a geofence. 79c5e268c6Sopenharmony_ci * 80c5e268c6Sopenharmony_ci * @param fenceIndex Indicates the ID of the geofence. 81c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if delete geofence successed; returns a negative value otherwise. 82c5e268c6Sopenharmony_ci * 83c5e268c6Sopenharmony_ci * @since 3.2 84c5e268c6Sopenharmony_ci * @version 1.0 85c5e268c6Sopenharmony_ci */ 86c5e268c6Sopenharmony_ci DeleteGnssGeofence([in] int fenceIndex); 87c5e268c6Sopenharmony_ci} 88