161847f8eSopenharmony_ci/*
261847f8eSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd.
361847f8eSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
461847f8eSopenharmony_ci * you may not use this file except in compliance with the License.
561847f8eSopenharmony_ci * You may obtain a copy of the License at
661847f8eSopenharmony_ci *
761847f8eSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
861847f8eSopenharmony_ci *
961847f8eSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1061847f8eSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1161847f8eSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1261847f8eSopenharmony_ci * See the License for the specific language governing permissions and
1361847f8eSopenharmony_ci * limitations under the License.
1461847f8eSopenharmony_ci */
1561847f8eSopenharmony_ci
1661847f8eSopenharmony_ci/**
1761847f8eSopenharmony_ci * @file
1861847f8eSopenharmony_ci * @kit ConnectivityKit
1961847f8eSopenharmony_ci */
2061847f8eSopenharmony_ci
2161847f8eSopenharmony_ciimport { Callback } from './@ohos.base';
2261847f8eSopenharmony_ci
2361847f8eSopenharmony_ci/**
2461847f8eSopenharmony_ci * Provides methods to operate or manage NFC.
2561847f8eSopenharmony_ci *
2661847f8eSopenharmony_ci * @namespace nfcController
2761847f8eSopenharmony_ci * @syscap SystemCapability.Communication.NFC.Core
2861847f8eSopenharmony_ci * @since 7
2961847f8eSopenharmony_ci */
3061847f8eSopenharmony_ci/**
3161847f8eSopenharmony_ci * Provides methods to operate or manage NFC.
3261847f8eSopenharmony_ci *
3361847f8eSopenharmony_ci * @namespace nfcController
3461847f8eSopenharmony_ci * @syscap SystemCapability.Communication.NFC.Core
3561847f8eSopenharmony_ci * @atomicservice
3661847f8eSopenharmony_ci * @since 12
3761847f8eSopenharmony_ci */
3861847f8eSopenharmony_cideclare namespace nfcController {
3961847f8eSopenharmony_ci  /**
4061847f8eSopenharmony_ci   * NFC changed states.
4161847f8eSopenharmony_ci   *
4261847f8eSopenharmony_ci   * @enum { number }
4361847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
4461847f8eSopenharmony_ci   * @since 7
4561847f8eSopenharmony_ci   */
4661847f8eSopenharmony_ci  /**
4761847f8eSopenharmony_ci   * NFC changed states.
4861847f8eSopenharmony_ci   *
4961847f8eSopenharmony_ci   * @enum { number }
5061847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
5161847f8eSopenharmony_ci   * @atomicservice
5261847f8eSopenharmony_ci   * @since 12
5361847f8eSopenharmony_ci   */
5461847f8eSopenharmony_ci  enum NfcState {
5561847f8eSopenharmony_ci    /** 
5661847f8eSopenharmony_ci     * Indicates that NFC is disabled.
5761847f8eSopenharmony_ci     *
5861847f8eSopenharmony_ci     * @syscap SystemCapability.Communication.NFC.Core
5961847f8eSopenharmony_ci     * @since 7
6061847f8eSopenharmony_ci     */
6161847f8eSopenharmony_ci    /** 
6261847f8eSopenharmony_ci     * Indicates that NFC is disabled.
6361847f8eSopenharmony_ci     *
6461847f8eSopenharmony_ci     * @syscap SystemCapability.Communication.NFC.Core
6561847f8eSopenharmony_ci     * @atomicservice
6661847f8eSopenharmony_ci     * @since 12
6761847f8eSopenharmony_ci     */
6861847f8eSopenharmony_ci    STATE_OFF = 1,
6961847f8eSopenharmony_ci
7061847f8eSopenharmony_ci    /** 
7161847f8eSopenharmony_ci     * Indicates that NFC is being enabled.
7261847f8eSopenharmony_ci     * 
7361847f8eSopenharmony_ci     * @syscap SystemCapability.Communication.NFC.Core
7461847f8eSopenharmony_ci     * @since 7
7561847f8eSopenharmony_ci     */
7661847f8eSopenharmony_ci    /** 
7761847f8eSopenharmony_ci     * Indicates that NFC is being enabled.
7861847f8eSopenharmony_ci     * 
7961847f8eSopenharmony_ci     * @syscap SystemCapability.Communication.NFC.Core
8061847f8eSopenharmony_ci     * @atomicservice
8161847f8eSopenharmony_ci     * @since 12
8261847f8eSopenharmony_ci     */
8361847f8eSopenharmony_ci    STATE_TURNING_ON = 2,
8461847f8eSopenharmony_ci
8561847f8eSopenharmony_ci    /**
8661847f8eSopenharmony_ci     * Indicates that NFC is enabled.
8761847f8eSopenharmony_ci     * 
8861847f8eSopenharmony_ci     * @syscap SystemCapability.Communication.NFC.Core
8961847f8eSopenharmony_ci     * @since 7
9061847f8eSopenharmony_ci     */
9161847f8eSopenharmony_ci    /**
9261847f8eSopenharmony_ci     * Indicates that NFC is enabled.
9361847f8eSopenharmony_ci     * 
9461847f8eSopenharmony_ci     * @syscap SystemCapability.Communication.NFC.Core
9561847f8eSopenharmony_ci     * @atomicservice
9661847f8eSopenharmony_ci     * @since 12
9761847f8eSopenharmony_ci     */
9861847f8eSopenharmony_ci    STATE_ON = 3,
9961847f8eSopenharmony_ci
10061847f8eSopenharmony_ci    /** 
10161847f8eSopenharmony_ci     * Indicates that NFC is being disabled.
10261847f8eSopenharmony_ci     * 
10361847f8eSopenharmony_ci     * @syscap SystemCapability.Communication.NFC.Core
10461847f8eSopenharmony_ci     * @since 7
10561847f8eSopenharmony_ci     */
10661847f8eSopenharmony_ci    /** 
10761847f8eSopenharmony_ci     * Indicates that NFC is being disabled.
10861847f8eSopenharmony_ci     * 
10961847f8eSopenharmony_ci     * @syscap SystemCapability.Communication.NFC.Core
11061847f8eSopenharmony_ci     * @atomicservice
11161847f8eSopenharmony_ci     * @since 12
11261847f8eSopenharmony_ci     */
11361847f8eSopenharmony_ci    STATE_TURNING_OFF = 4
11461847f8eSopenharmony_ci  }
11561847f8eSopenharmony_ci
11661847f8eSopenharmony_ci  /**
11761847f8eSopenharmony_ci   * Checks whether a device supports NFC.
11861847f8eSopenharmony_ci   *
11961847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if the device supports NFC; returns {@code false} otherwise.
12061847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
12161847f8eSopenharmony_ci   * @since 7
12261847f8eSopenharmony_ci   * @deprecated since 9
12361847f8eSopenharmony_ci   * @useinstead global#canIUse("SystemCapability.Communication.NFC.Core")
12461847f8eSopenharmony_ci   */
12561847f8eSopenharmony_ci  function isNfcAvailable(): boolean;
12661847f8eSopenharmony_ci
12761847f8eSopenharmony_ci  /**
12861847f8eSopenharmony_ci   * register nfc state changed event.
12961847f8eSopenharmony_ci   *
13061847f8eSopenharmony_ci   * @param { 'nfcStateChange' } type The type to register.
13161847f8eSopenharmony_ci   * @param { Callback<NfcState> } callback Callback used to listen to the nfc state changed event.
13261847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
13361847f8eSopenharmony_ci   * @since 7
13461847f8eSopenharmony_ci   */
13561847f8eSopenharmony_ci  /**
13661847f8eSopenharmony_ci   * register nfc state changed event.
13761847f8eSopenharmony_ci   *
13861847f8eSopenharmony_ci   * @param { 'nfcStateChange' } type The type to register.
13961847f8eSopenharmony_ci   * @param { Callback<NfcState> } callback Callback used to listen to the nfc state changed event.
14061847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
14161847f8eSopenharmony_ci   * @atomicservice
14261847f8eSopenharmony_ci   * @since 12
14361847f8eSopenharmony_ci   */
14461847f8eSopenharmony_ci  function on(type: 'nfcStateChange', callback: Callback<NfcState>): void;
14561847f8eSopenharmony_ci
14661847f8eSopenharmony_ci  /**
14761847f8eSopenharmony_ci   * unregister nfc state changed event.
14861847f8eSopenharmony_ci   *
14961847f8eSopenharmony_ci   * @param { 'nfcStateChange' } type The type to unregister.
15061847f8eSopenharmony_ci   * @param { Callback<NfcState> }  callback Callback used to listen to the nfc state changed event.
15161847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
15261847f8eSopenharmony_ci   * @since 7
15361847f8eSopenharmony_ci   */
15461847f8eSopenharmony_ci  /**
15561847f8eSopenharmony_ci   * unregister nfc state changed event.
15661847f8eSopenharmony_ci   *
15761847f8eSopenharmony_ci   * @param { 'nfcStateChange' } type The type to unregister.
15861847f8eSopenharmony_ci   * @param { Callback<NfcState> }  callback Callback used to listen to the nfc state changed event.
15961847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
16061847f8eSopenharmony_ci   * @atomicservice
16161847f8eSopenharmony_ci   * @since 12
16261847f8eSopenharmony_ci   */
16361847f8eSopenharmony_ci  function off(type: 'nfcStateChange', callback?: Callback<NfcState>): void;
16461847f8eSopenharmony_ci
16561847f8eSopenharmony_ci  /**
16661847f8eSopenharmony_ci   * Enables NFC.
16761847f8eSopenharmony_ci   *
16861847f8eSopenharmony_ci   * @permission ohos.permission.MANAGE_SECURE_SETTINGS
16961847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if NFC is enabled or has been enabled; returns {@code false} otherwise.
17061847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
17161847f8eSopenharmony_ci   * @since 7
17261847f8eSopenharmony_ci   * @deprecated since 9
17361847f8eSopenharmony_ci   * @useinstead @ohos.nfc.controller.nfcController#enableNfc
17461847f8eSopenharmony_ci   */
17561847f8eSopenharmony_ci  function openNfc(): boolean;
17661847f8eSopenharmony_ci
17761847f8eSopenharmony_ci  /**
17861847f8eSopenharmony_ci   * Enables NFC.
17961847f8eSopenharmony_ci   * This API can be called only by system applications
18061847f8eSopenharmony_ci   *
18161847f8eSopenharmony_ci   * @permission ohos.permission.MANAGE_SECURE_SETTINGS
18261847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied.
18361847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported.
18461847f8eSopenharmony_ci   * @throws { BusinessError } 3100101 - NFC state is abnormal in service.
18561847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
18661847f8eSopenharmony_ci   * @since 9
18761847f8eSopenharmony_ci   */
18861847f8eSopenharmony_ci  function enableNfc(): void;
18961847f8eSopenharmony_ci
19061847f8eSopenharmony_ci  /**
19161847f8eSopenharmony_ci   * Disables NFC.
19261847f8eSopenharmony_ci   *
19361847f8eSopenharmony_ci   * @permission ohos.permission.MANAGE_SECURE_SETTINGS
19461847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if NFC is disabled or has been disabled; returns {@code false} otherwise.
19561847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
19661847f8eSopenharmony_ci   * @since 7
19761847f8eSopenharmony_ci   * @deprecated since 9
19861847f8eSopenharmony_ci   * @useinstead @ohos.nfc.controller.nfcController#disableNfc
19961847f8eSopenharmony_ci   */
20061847f8eSopenharmony_ci  function closeNfc(): boolean;
20161847f8eSopenharmony_ci
20261847f8eSopenharmony_ci  /**
20361847f8eSopenharmony_ci   * Disables NFC.
20461847f8eSopenharmony_ci   * This API can be called only by system applications
20561847f8eSopenharmony_ci   *
20661847f8eSopenharmony_ci   * @permission ohos.permission.MANAGE_SECURE_SETTINGS
20761847f8eSopenharmony_ci   * @throws { BusinessError } 201 - Permission denied.
20861847f8eSopenharmony_ci   * @throws { BusinessError } 801 - Capability not supported.
20961847f8eSopenharmony_ci   * @throws { BusinessError } 3100101 - NFC state is abnormal in service.
21061847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
21161847f8eSopenharmony_ci   * @since 9
21261847f8eSopenharmony_ci   */
21361847f8eSopenharmony_ci  function disableNfc(): void;
21461847f8eSopenharmony_ci
21561847f8eSopenharmony_ci  /**
21661847f8eSopenharmony_ci   * Checks whether NFC is enabled.
21761847f8eSopenharmony_ci   *
21861847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if NFC is enabled; returns {@code false} otherwise.
21961847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
22061847f8eSopenharmony_ci   * @since 7
22161847f8eSopenharmony_ci   */
22261847f8eSopenharmony_ci  /**
22361847f8eSopenharmony_ci   * Checks whether NFC is enabled.
22461847f8eSopenharmony_ci   *
22561847f8eSopenharmony_ci   * @returns { boolean } Returns {@code true} if NFC is enabled; returns {@code false} otherwise.
22661847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
22761847f8eSopenharmony_ci   * @atomicservice
22861847f8eSopenharmony_ci   * @since 12
22961847f8eSopenharmony_ci   */
23061847f8eSopenharmony_ci  function isNfcOpen(): boolean;
23161847f8eSopenharmony_ci
23261847f8eSopenharmony_ci  /**
23361847f8eSopenharmony_ci   * Obtains the NFC status.
23461847f8eSopenharmony_ci   * <p>The NFC status can be any of the following: <ul><li>{@link #STATE_OFF}: Indicates that NFC
23561847f8eSopenharmony_ci   * is disabled. <li>{@link #STATE_TURNING_ON}: Indicates that NFC is being enabled.
23661847f8eSopenharmony_ci   * <li>{@link #STATE_ON}: Indicates that NFC is enabled. <li>{@link #STATE_TURNING_OFF}: Indicates
23761847f8eSopenharmony_ci   * that NFC is being disabled.</ul>
23861847f8eSopenharmony_ci   *
23961847f8eSopenharmony_ci   * @returns { NfcState } Returns the NFC status.
24061847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
24161847f8eSopenharmony_ci   * @since 7
24261847f8eSopenharmony_ci   */
24361847f8eSopenharmony_ci  /**
24461847f8eSopenharmony_ci   * Obtains the NFC status.
24561847f8eSopenharmony_ci   * <p>The NFC status can be any of the following: <ul><li>{@link #STATE_OFF}: Indicates that NFC
24661847f8eSopenharmony_ci   * is disabled. <li>{@link #STATE_TURNING_ON}: Indicates that NFC is being enabled.
24761847f8eSopenharmony_ci   * <li>{@link #STATE_ON}: Indicates that NFC is enabled. <li>{@link #STATE_TURNING_OFF}: Indicates
24861847f8eSopenharmony_ci   * that NFC is being disabled.</ul>
24961847f8eSopenharmony_ci   *
25061847f8eSopenharmony_ci   * @returns { NfcState } Returns the NFC status.
25161847f8eSopenharmony_ci   * @syscap SystemCapability.Communication.NFC.Core
25261847f8eSopenharmony_ci   * @atomicservice
25361847f8eSopenharmony_ci   * @since 12
25461847f8eSopenharmony_ci   */
25561847f8eSopenharmony_ci  function getNfcState(): NfcState;
25661847f8eSopenharmony_ci}
25761847f8eSopenharmony_ci
25861847f8eSopenharmony_ciexport default nfcController;
259