1# 标准NFC-cardEmulation 2 3本模块主要用于操作及管理NFC卡模拟。 4 5>  **说明:** 6> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 7 8 9## 导入模块 10 11``` 12import cardEmulation from '@ohos.nfc.cardEmulation'; 13``` 14 15 16## cardEmulation.isSupported 17 18isSupported(feature: number): boolean 19 20是否支持某种类型的卡模拟 21 22**系统能力**:SystemCapability.Communication.NFC 23 24**返回值:** 25 26 | **类型** | **说明** | 27 | -------- | -------- | 28 | boolean | true:支持该类型卡模拟, false:不支持该类型卡模拟。 | 29 30## HceService 31 32管理HCE卡模拟。在调用HceService的接口前,需要先通过new cardEmulation.HceService()创建实例。 33 34### startHCE 35 36startHCE(aidList: string[]): boolean 37 38开始使用HCE能力。 39 40**需要权限**:ohos.permission.NFC_CARD_EMULATION 41 42**系统能力**:SystemCapability.Communication.NFC 43 44**参数:** 45 46| 参数名 | 类型 | 必填 | 说明 | 47| ------- | -------- | ---- | ----------------------- | 48| aidList | string[] | 是 | 注册进行卡模拟的aid列表 | 49 50### stopHCE 51 52stopHCE(): boolean 53 54停止使用HCE能力。 55 56**需要权限**:ohos.permission.NFC_CARD_EMULATION 57 58**系统能力:** SystemCapability.Communication.NFC 59 60### on 61 62on(type: "hceCmd", callback: AsyncCallback<number[]>): void; 63 64在startHCE后,订阅对端设备消息。 65 66**需要权限**:ohos.permission.NFC_CARD_EMULATION 67 68**系统能力**:SystemCapability.Communication.NFC 69 70**参数:** 71 72| 参数名 | 类型 | 必填 | 说明 | 73| -------- | ----------------------- | ---- | -------------------------------------------- | 74| type | string | 是 | 固定填"hceCmd"字符串 | 75| callback | AsyncCallback<number[]> | 是 | 订阅的事件回调,入参是符合APDU协议的数据数组 | 76 77### sendResponse 78 79sendResponse(responseApdu: number[]): void; 80 81发送数据到对端设备。 82 83**需要权限**:ohos.permission.NFC_CARD_EMULATION 84 85**系统能力**:SystemCapability.Communication.NFC 86 87**参数:** 88 89| 参数名 | 类型 | 必填 | 说明 | 90| ------------ | -------- | ---- | -------------------------------------------------- | 91| responseApdu | number[] | 是 | 准备发送到对端的数据,入参是符合APDU协议的数据数组 | 92 93**示例:** 94 95```js 96var hceService = new cardEmulation.HceService(); 97hceService.startHCE([ 98 "F0010203040506", "A0000000041010" 99]) 100hceService.stopHCE(); 101hceService.on("hceCmd", (err, res) => { 102 if(err.data === 0) { 103 console.log('callback => Operation hceCmd succeeded. Data: ' + JSON.stringify(res)); 104 hceService.sendResponse([0x00,0xa4,0x04,0x00, 105 0x0e,0x32,0x50,0x41,0x59,0x2e,0x53,0x59,0x53,0x2e,0x44,0x44, 106 0x46,0x30,0x31,0x00]); 107 } else { 108 console.log('callback => Operation hceCmd failed. Cause: ' + err.data); 109 } 110}) 111``` 112 113