1c5e268c6Sopenharmony_ci/* 2c5e268c6Sopenharmony_ci * Copyright (c) 2023 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 HdiLpfenceCellfence 18c5e268c6Sopenharmony_ci * @{ 19c5e268c6Sopenharmony_ci * 20c5e268c6Sopenharmony_ci * @brief Provides cell fence APIs for low-power fence services. 21c5e268c6Sopenharmony_ci * 22c5e268c6Sopenharmony_ci * You can use the APIs to add or remove cell fences and obtain cell fence information of a device. 23c5e268c6Sopenharmony_ci * The cell fence module is used to determine whether a device reaches a comparatively large area, so that subsequent services, for example, pushing the scenic spot introduction to tourists, can be implemented. 24c5e268c6Sopenharmony_ci * 25c5e268c6Sopenharmony_ci * @since 4.0 26c5e268c6Sopenharmony_ci * @version 1.0 27c5e268c6Sopenharmony_ci */ 28c5e268c6Sopenharmony_ci 29c5e268c6Sopenharmony_ci/** 30c5e268c6Sopenharmony_ci * @file ICellfenceCallback.idl 31c5e268c6Sopenharmony_ci * 32c5e268c6Sopenharmony_ci * @brief Defines the callbacks of the cell fence module. 33c5e268c6Sopenharmony_ci * 34c5e268c6Sopenharmony_ci * @since 4.0 35c5e268c6Sopenharmony_ci * @version 1.0 36c5e268c6Sopenharmony_ci */ 37c5e268c6Sopenharmony_ci 38c5e268c6Sopenharmony_ci/** 39c5e268c6Sopenharmony_ci * @brief Declares the path of the cell fence module interface package. 40c5e268c6Sopenharmony_ci * 41c5e268c6Sopenharmony_ci * @since 4.0 42c5e268c6Sopenharmony_ci */ 43c5e268c6Sopenharmony_cipackage ohos.hdi.location.lpfence.cellfence.v1_0; 44c5e268c6Sopenharmony_ci 45c5e268c6Sopenharmony_ci/** 46c5e268c6Sopenharmony_ci * @brief Imports data types of the cell fence module. 47c5e268c6Sopenharmony_ci * 48c5e268c6Sopenharmony_ci * @since 4.0 49c5e268c6Sopenharmony_ci */ 50c5e268c6Sopenharmony_ciimport ohos.hdi.location.lpfence.cellfence.v1_0.CellfenceTypes; 51c5e268c6Sopenharmony_ci 52c5e268c6Sopenharmony_ci/** 53c5e268c6Sopenharmony_ci * @brief Defines the callback of the cell fence module. 54c5e268c6Sopenharmony_ci * 55c5e268c6Sopenharmony_ci * Before enabling the cell fencing feature, you need to register the callback to report the cell fence status when the relationship between a cell fence and a device changes. 56c5e268c6Sopenharmony_ci * For details, see {@link ICellfenceInterface}. 57c5e268c6Sopenharmony_ci * 58c5e268c6Sopenharmony_ci * @since 4.0 59c5e268c6Sopenharmony_ci */ 60c5e268c6Sopenharmony_ci[callback] interface ICellfenceCallback { 61c5e268c6Sopenharmony_ci /** 62c5e268c6Sopenharmony_ci * @brief Called to report the cell fence status changes. 63c5e268c6Sopenharmony_ci * 64c5e268c6Sopenharmony_ci * This callback will be invoked to report the cell fence status when the relationship between a device and a cell fence changes. 65c5e268c6Sopenharmony_ci * 66c5e268c6Sopenharmony_ci * @param fences Indicates the cell fence status change to report. For details, see {@link CellfenceStatus}. 67c5e268c6Sopenharmony_ci * 68c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the callback is invoked successfully. 69c5e268c6Sopenharmony_ci * @return Returns a negative value if the callback fails to be invoked. 70c5e268c6Sopenharmony_ci * 71c5e268c6Sopenharmony_ci * @since 4.0 72c5e268c6Sopenharmony_ci */ 73c5e268c6Sopenharmony_ci OnCellfenceChanged([in] struct CellfenceStatus fences); 74c5e268c6Sopenharmony_ci 75c5e268c6Sopenharmony_ci /** 76c5e268c6Sopenharmony_ci * @brief Called to report the cell fence information of a device. 77c5e268c6Sopenharmony_ci * 78c5e268c6Sopenharmony_ci * 79c5e268c6Sopenharmony_ci * @param size Indicates the cell fence information obtained. For details, see {@link CellfenceSize}. 80c5e268c6Sopenharmony_ci * 81c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the callback is invoked successfully. 82c5e268c6Sopenharmony_ci * @return Returns a negative value if the callback fails to be invoked. 83c5e268c6Sopenharmony_ci * 84c5e268c6Sopenharmony_ci * @since 4.0 85c5e268c6Sopenharmony_ci */ 86c5e268c6Sopenharmony_ci OnGetCellfenceSizeCb([in] struct CellfenceSize size); 87c5e268c6Sopenharmony_ci 88c5e268c6Sopenharmony_ci /** 89c5e268c6Sopenharmony_ci * @brief Called when the low-power fence service is reset. 90c5e268c6Sopenharmony_ci * 91c5e268c6Sopenharmony_ci * 92c5e268c6Sopenharmony_ci * @return Returns <b>0</b> if the callback is invoked successfully. 93c5e268c6Sopenharmony_ci * @return Returns a negative value if the callback fails to be invoked. 94c5e268c6Sopenharmony_ci * 95c5e268c6Sopenharmony_ci * @since 4.0 96c5e268c6Sopenharmony_ci */ 97c5e268c6Sopenharmony_ci OnCellfenceReset(); 98c5e268c6Sopenharmony_ci} 99c5e268c6Sopenharmony_ci/** @} */ 100