js-apis-cardEmulation.md 3.1 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
# 标准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

24 25
**返回值:**

刘嘉伟 已提交
26 27 28 29 30 31
  | **类型** | **说明** |
  | -------- | -------- |
  | boolean | true:支持该类型卡模拟, false:不支持该类型卡模拟。 |

## HceService

32
管理HCE卡模拟。在调用HceService的接口前,需要先通过new cardEmulation.HceService()创建实例。
刘嘉伟 已提交
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

### 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

**参数:**

| 参数名   | 类型                    | 必填 | 说明                                         |
| -------- | ----------------------- | ---- | -------------------------------------------- |
74
| type     | string                  | 是   | 固定填"hceCmd"字符串                         |
刘嘉伟 已提交
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| callback | AsyncCallback<number[]> | 是   | 订阅的事件回调,入参是符合APDU协议的数据数组 |

### sendResponse

sendResponse(responseApdu: number[]): void;

发送数据到对端设备。

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

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

**参数:**

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

**示例:**

95
```js
刘嘉伟 已提交
96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
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);
    }
})
```