# @ohos.nfc.controller (æ ‡å‡†NFC) 本模å—主è¦ç”¨äºŽç®¡ç†NFC状æ€ï¼ŒåŒ…括打开和关é—NFC,读å–NFC的状æ€ç‰ã€‚ > **说明:** > > 本模å—首批接å£ä»ŽAPI version 7开始支æŒã€‚åŽç»ç‰ˆæœ¬çš„新增接å£ï¼Œé‡‡ç”¨ä¸Šè§’æ ‡å•ç‹¬æ ‡è®°æŽ¥å£çš„起始版本。 ## **导入模å—** ```js import { nfcController } from '@kit.ConnectivityKit'; ``` ## NfcState 定义ä¸åŒçš„NFC状æ€å€¼ã€‚ **系统能力:** SystemCapability.Communication.NFC.Core **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ | å称 | 值 | 说明 | | -------- | -------- | -------- | | STATE_OFF | 1 | NFC已关é—状æ€ã€‚ | | STATE_TURNING_ON | 2 | NFCæ£åœ¨æ‰“开状æ€ã€‚ | | STATE_ON | 3 | NFC已打开状æ€ã€‚ | | STATE_TURNING_OFF | 4 | NFCæ£åœ¨å…³é—状æ€ã€‚ | ## nfcController.isNfcAvailable<sup>(deprecated)</sup> isNfcAvailable(): boolean 查询设备是å¦æœ‰NFC能力。 > **说明:** > 从 API version 7 开始支æŒï¼Œä»Ž API version 9 开始废弃,建议使用[canIUse("SystemCapability.Communication.NFC.Core")](../common/init.md#caniuse)替代。 **系统能力:** SystemCapability.Communication.NFC.Core **返回值:** | **类型** | **说明** | | -------- | -------- | | boolean | true: 设备具备NFC能力, false: 设备ä¸å…·å¤‡NFC能力。 | ## nfcController.openNfc<sup>(deprecated)</sup> openNfc(): boolean 打开NFC开关。 > **说明:** > 从 API version 7 开始支æŒï¼Œä»Ž API version 9 开始废弃,建议使用[enableNfc](#nfccontrollerenablenfc9)替代。 **需è¦æƒé™ï¼š** ohos.permission.MANAGE_SECURE_SETTINGS(该æƒé™ä»…系统应用å¯ç”³è¯·ï¼‰ **系统能力:** SystemCapability.Communication.NFC.Core **返回值:** | **类型** | **说明** | | -------- | -------- | | boolean | true: 打开NFCæˆåŠŸï¼Œ false: 打开NFC失败。 | ## nfcController.enableNfc<sup>9+</sup> enableNfc(): void 打开NFC开关,该接å£åªèƒ½è¢«ç³»ç»Ÿåº”用调用。 **需è¦æƒé™ï¼š** ohos.permission.MANAGE_SECURE_SETTINGS(该æƒé™ä»…系统应用å¯ç”³è¯·ï¼‰ **系统能力:** SystemCapability.Communication.NFC.Core **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[NFC错误ç ](errorcode-nfc.md)。 | 错误ç ID | 错误信æ¯| | ------- | -------| |201 | Permission denied. | |801 | Capability not supported. | | 3100101 | NFC state is abnormal in service. | ## nfcController.closeNfc<sup>(deprecated)</sup> closeNfc(): boolean å…³é—NFC开关。 > **说明:** > 从 API version 7 开始支æŒï¼Œä»Ž API version 9 开始废弃,建议使用[disableNfc](#nfccontrollerdisablenfc9)替代。 **需è¦æƒé™ï¼š** ohos.permission.MANAGE_SECURE_SETTINGS(该æƒé™ä»…系统应用å¯ç”³è¯·ï¼‰ **系统能力:** SystemCapability.Communication.NFC.Core **返回值:** | **类型** | **说明** | | -------- | ------------------------------------------- | | boolean | true: å…³é—NFCæˆåŠŸï¼Œ false: å…³é—NFC失败。 | ## nfcController.disableNfc<sup>9+</sup> disableNfc(): void å…³é—NFC开关,该接å£åªèƒ½è¢«ç³»ç»Ÿåº”用调用。 **需è¦æƒé™ï¼š** ohos.permission.MANAGE_SECURE_SETTINGS(该æƒé™ä»…系统应用å¯ç”³è¯·ï¼‰ **系统能力:** SystemCapability.Communication.NFC.Core **错误ç :** 以下错误ç 的详细介ç»è¯·å‚è§[NFC错误ç ](errorcode-nfc.md)。 | 错误ç ID | 错误信æ¯| | ------- | -------| |201 | Permission denied. | |801 | Capability not supported. | | 3100101 | NFC state is abnormal in service. | ## nfcController.isNfcOpen isNfcOpen(): boolean 查询NFC是å¦æ‰“开。 **系统能力:** SystemCapability.Communication.NFC.Core **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **返回值:** | **类型** | **说明** | | -------- | ----------------------------------- | | boolean | true: NFC是打开的, false: NFC是关é—的。 | ## nfcController.getNfcState getNfcState(): [NfcState](#nfcstate) 查询NFC状æ€ã€‚ **系统能力:** SystemCapability.Communication.NFC.Core **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **返回值:** | **类型** | **说明** | | -------- | ---------------------- | | [NfcState](#nfcstate) | NFC状æ€å€¼ï¼Œè¯¦ç»†è¯·è§[NfcState](#nfcstate)枚举值。 | ## nfcController.on('nfcStateChange') on(type: 'nfcStateChange', callback: Callback<[NfcState](#nfcstate)>): void 注册NFC开关状æ€äº‹ä»¶ï¼Œé€šè¿‡Callbackæ–¹å¼èŽ·å–NFC状æ€çš„å˜åŒ–通知。 **系统能力:** SystemCapability.Communication.NFC.Core **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **å‚æ•°** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"nfcStateChange"å—符串。 | | callback | Callback<[NfcState](#nfcstate)> | 是 | NFC状æ€æ”¹å˜é€šçŸ¥çš„回调函数。 | ## nfcController.off('nfcStateChange') off(type: 'nfcStateChange', callback?: Callback<[NfcState](#nfcstate)>): void å–消NFC开关状æ€äº‹ä»¶çš„注册,å–消åŽNFC状æ€å˜åŒ–时,就ä¸ä¼šå†æ”¶åˆ°Callback的通知。 **系统能力:** SystemCapability.Communication.NFC.Core **原å化æœåŠ¡API:** 从API version 12开始,该接å£æ”¯æŒåœ¨åŽŸå化æœåŠ¡ä¸ä½¿ç”¨ã€‚ **å‚æ•°** | **å‚æ•°å** | **类型** | **å¿…å¡«** | **说明** | | -------- | -------- | -------- | -------- | | type | string | 是 | 固定填"nfcStateChange"å—符串。 | | callback | Callback<[NfcState](#nfcstate)> | å¦ | NFC状æ€æ”¹å˜å›žè°ƒå‡½æ•°ï¼Œå¯ä»¥ç©ºç¼ºä¸å¡«ã€‚如果callbackä¸å¡«ï¼Œå°†å–消注册该事件关è”的所有回调函数 | **示例** ```js import { nfcController } from '@kit.ConnectivityKit'; // register callback to receive the nfc state changed notification nfcController.on("nfcStateChange", (nfcState : number)=> { console.log("nfcController on callback nfcState: " + nfcState); }); // open nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS(This permission can only be requested by system apps.) if (!nfcController.isNfcOpen()) { // from api9, use 'enableNfc' to open nfc. try { nfcController.enableNfc(); console.log("nfcController enableNfc success"); } catch (businessError) { console.error("nfcController enableNfc businessError: " + businessError); } } else { console.log("nfcController NFC has been opened"); } // close nfc, require permission: ohos.permission.MANAGE_SECURE_SETTINGS(This permission can only be requested by system apps.) if (nfcController.isNfcOpen()) { // from api9, use 'disableNfc' to close nfc. try { nfcController.disableNfc(); console.log("nfcController disableNfc success"); } catch (businessError) { console.error("nfcController disableNfc businessError: " + businessError); } } else { console.log("nfcController NFC has been closed"); } // unregister callback nfcController.off("nfcStateChange"); ```