1# @ohos.nfc.controller (标准NFC) 2 3本模块主要用于管理NFC状态,包括打开和关闭NFC,读取NFC的状态等。 4 5> **说明:** 6> 7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## **导入模块** 10 11```js 12import { nfcController } from '@kit.ConnectivityKit'; 13``` 14 15## NfcState 16 17定义不同的NFC状态值。 18 19**系统能力:** SystemCapability.Communication.NFC.Core 20 21**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 22 23| 名称 | 值 | 说明 | 24| -------- | -------- | -------- | 25| STATE_OFF | 1 | NFC已关闭状态。 | 26| STATE_TURNING_ON | 2 | NFC正在打开状态。 | 27| STATE_ON | 3 | NFC已打开状态。 | 28| STATE_TURNING_OFF | 4 | NFC正在关闭状态。 | 29 30## nfcController.isNfcAvailable<sup>(deprecated)</sup> 31 32isNfcAvailable(): boolean 33 34查询设备是否有NFC能力。 35 36> **说明:** 37> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用[canIUse("SystemCapability.Communication.NFC.Core")](../common/init.md#caniuse)替代。 38 39**系统能力:** SystemCapability.Communication.NFC.Core 40 41**返回值:** 42 43| **类型** | **说明** | 44| -------- | -------- | 45| boolean | true: 设备具备NFC能力, false: 设备不具备NFC能力。 | 46 47 48## nfcController.openNfc<sup>(deprecated)</sup> 49 50openNfc(): boolean 51 52打开NFC开关。 53 54> **说明:** 55> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用[enableNfc](#nfccontrollerenablenfc9)替代。 56 57**需要权限:** ohos.permission.MANAGE_SECURE_SETTINGS(该权限仅系统应用可申请) 58 59**系统能力:** SystemCapability.Communication.NFC.Core 60 61**返回值:** 62 63| **类型** | **说明** | 64| -------- | -------- | 65| boolean | true: 打开NFC成功, false: 打开NFC失败。 | 66 67## nfcController.enableNfc<sup>9+</sup> 68 69enableNfc(): void 70 71打开NFC开关,该接口只能被系统应用调用。 72 73**需要权限:** ohos.permission.MANAGE_SECURE_SETTINGS(该权限仅系统应用可申请) 74 75**系统能力:** SystemCapability.Communication.NFC.Core 76 77**错误码:** 78 79以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 80 81| 错误码ID | 错误信息| 82| ------- | -------| 83|201 | Permission denied. | 84|801 | Capability not supported. | 85| 3100101 | NFC state is abnormal in service. | 86 87## nfcController.closeNfc<sup>(deprecated)</sup> 88 89closeNfc(): boolean 90 91关闭NFC开关。 92 93> **说明:** 94> 从 API version 7 开始支持,从 API version 9 开始废弃,建议使用[disableNfc](#nfccontrollerdisablenfc9)替代。 95 96**需要权限:** ohos.permission.MANAGE_SECURE_SETTINGS(该权限仅系统应用可申请) 97 98**系统能力:** SystemCapability.Communication.NFC.Core 99 100**返回值:** 101 102| **类型** | **说明** | 103| -------- | ------------------------------------------- | 104| boolean | true: 关闭NFC成功, false: 关闭NFC失败。 | 105 106## nfcController.disableNfc<sup>9+</sup> 107 108disableNfc(): void 109 110关闭NFC开关,该接口只能被系统应用调用。 111 112**需要权限:** ohos.permission.MANAGE_SECURE_SETTINGS(该权限仅系统应用可申请) 113 114**系统能力:** SystemCapability.Communication.NFC.Core 115 116**错误码:** 117 118以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 119 120| 错误码ID | 错误信息| 121| ------- | -------| 122|201 | Permission denied. | 123|801 | Capability not supported. | 124| 3100101 | NFC state is abnormal in service. | 125 126## nfcController.isNfcOpen 127 128isNfcOpen(): boolean 129 130查询NFC是否打开。 131 132**系统能力:** SystemCapability.Communication.NFC.Core 133 134**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 135 136**返回值:** 137 138| **类型** | **说明** | 139| -------- | ----------------------------------- | 140| boolean | true: NFC是打开的, false: NFC是关闭的。 | 141 142## nfcController.getNfcState 143 144getNfcState(): [NfcState](#nfcstate) 145 146查询NFC状态。 147 148**系统能力:** SystemCapability.Communication.NFC.Core 149 150**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 151 152**返回值:** 153 154| **类型** | **说明** | 155| -------- | ---------------------- | 156| [NfcState](#nfcstate) | NFC状态值,详细请见[NfcState](#nfcstate)枚举值。 | 157 158## nfcController.on('nfcStateChange') 159 160on(type: 'nfcStateChange', callback: Callback<[NfcState](#nfcstate)>): void 161 162注册NFC开关状态事件,通过Callback方式获取NFC状态的变化通知。 163 164**系统能力:** SystemCapability.Communication.NFC.Core 165 166**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 167 168**参数** 169 170| **参数名** | **类型** | **必填** | **说明** | 171| -------- | -------- | -------- | -------- | 172| type | string | 是 | 固定填"nfcStateChange"字符串。 | 173| callback | Callback<[NfcState](#nfcstate)> | 是 | NFC状态改变通知的回调函数。 | 174 175## nfcController.off('nfcStateChange') 176 177off(type: 'nfcStateChange', callback?: Callback<[NfcState](#nfcstate)>): void 178 179取消NFC开关状态事件的注册,取消后NFC状态变化时,就不会再收到Callback的通知。 180 181**系统能力:** SystemCapability.Communication.NFC.Core 182 183**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 184 185**参数** 186 187| **参数名** | **类型** | **必填** | **说明** | 188| -------- | -------- | -------- | -------- | 189| type | string | 是 | 固定填"nfcStateChange"字符串。 | 190| callback | Callback<[NfcState](#nfcstate)> | 否 | NFC状态改变回调函数,可以空缺不填。如果callback不填,将取消注册该事件关联的所有回调函数 | 191 192**示例** 193 194```js 195import { nfcController } from '@kit.ConnectivityKit'; 196 197// register callback to receive the nfc state changed notification 198nfcController.on("nfcStateChange", (nfcState : number)=> { 199 console.log("nfcController on callback nfcState: " + nfcState); 200}); 201 202// open nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS(This permission can only be requested by system apps.) 203if (!nfcController.isNfcOpen()) { 204 // from api9, use 'enableNfc' to open nfc. 205 try { 206 nfcController.enableNfc(); 207 console.log("nfcController enableNfc success"); 208 } catch (businessError) { 209 console.error("nfcController enableNfc businessError: " + businessError); 210 } 211} else { 212 console.log("nfcController NFC has been opened"); 213} 214 215// close nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS(This permission can only be requested by system apps.) 216if (nfcController.isNfcOpen()) { 217 // from api9, use 'disableNfc' to close nfc. 218 try { 219 nfcController.disableNfc(); 220 console.log("nfcController disableNfc success"); 221 } catch (businessError) { 222 console.error("nfcController disableNfc businessError: " + businessError); 223 } 224} else { 225 console.log("nfcController NFC has been closed"); 226} 227 228// unregister callback 229nfcController.off("nfcStateChange"); 230``` 231