js-apis-cardEmulation.md 3.0 KB
Newer Older
刘嘉伟 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
# 标准NFC-cardEmulation

本模块主要用于操作及管理NFC卡模拟。

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。


## **导入模块**

```
import cardEmulation from '@ohos.nfc.cardEmulation';
```


## cardEmulation.isSupported

isSupported(feature: number): boolean

是否支持某种类型的卡模拟

**系统能力**:SystemCapability.Communication.NFC

- 返回值:
  | **类型** | **说明** |
  | -------- | -------- |
  | boolean | true:支持该类型卡模拟, false:不支持该类型卡模拟。 |

## HceService

管理HCE卡模拟。在调用HceService的接口前,需要先通过getHceService创建实例。

### startHCE

startHCE(aidList: string[]): boolean

开始使用HCE能力。

**需要权限**:ohos.permission.NFC_CARD_EMULATION

**系统能力**:SystemCapability.Communication.NFC

**参数:**

| 参数名  | 类型     | 必填 | 说明                    |
| ------- | -------- | ---- | ----------------------- |
| aidList | string[] | 是   | 注册进行卡模拟的aid列表 |

### stopHCE

stopHCE(): boolean

停止使用HCE能力。

**需要权限**:ohos.permission.NFC_CARD_EMULATION

**系统能力:** SystemCapability.Communication.NFC

### on

on(type: "hceCmd", callback: AsyncCallback<number[]>): void;

在startHCE后,订阅对端设备消息。

**需要权限**:ohos.permission.NFC_CARD_EMULATION

**系统能力**:SystemCapability.Communication.NFC

**参数:**

| 参数名   | 类型                    | 必填 | 说明                                         |
| -------- | ----------------------- | ---- | -------------------------------------------- |
| hceCmd   | string                  | 是   | 订阅的事件类型                               |
| callback | AsyncCallback<number[]> | 是   | 订阅的事件回调,入参是符合APDU协议的数据数组 |

### sendResponse

sendResponse(responseApdu: number[]): void;

发送数据到对端设备。

**需要权限**:ohos.permission.NFC_CARD_EMULATION

**系统能力**:SystemCapability.Communication.NFC

**参数:**

| 参数名       | 类型     | 必填 | 说明                                               |
| ------------ | -------- | ---- | -------------------------------------------------- |
| responseApdu | number[] | 是   | 准备发送到对端的数据,入参是符合APDU协议的数据数组 |

**示例:**

```
var hceService = new cardEmulation.HceService();
hceService.startHCE([
    "F0010203040506", "A0000000041010"
])
hceService.stopHCE();
hceService.on("hceCmd", (err, res) => {
    if(err.data === 0) {
        console.log('callback => Operation hceCmd succeeded. Data: ' + JSON.stringify(res));
          hceService.sendResponse([0x00,0xa4,0x04,0x00,
          0x0e,0x32,0x50,0x41,0x59,0x2e,0x53,0x59,0x53,0x2e,0x44,0x44,
          0x46,0x30,0x31,0x00]);
    } else {
        console.log('callback => Operation hceCmd failed. Cause: ' + err.data);
    }
})
```