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