未验证 提交 c241c160 编写于 作者: O openharmony_ci 提交者: Gitee

!4289 add nfc API8

Merge pull request !4289 from 刘嘉伟/master
# 标准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);
}
})
```
# 标准NFC
本模块主要用于操作及管理NFC。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## **导入模块**
```
import controller from '@ohos.nfc.controller';
```
## controller.isNfcAvailable
isNfcAvailable(): boolean
查询是否有NFC功能
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| boolean | true:有NFC功能,&nbsp;false:无NFC功能。 |
## controller.openNfc
openNfc(): boolean
打开NFC开关。
**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
**系统能力**:SystemCapability.Communication.NFC
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| boolean | true:打开NFC成功,&nbsp;false:打开NFC失败。 |
## controller.closeNfc
closeNfc(): boolean
关闭NFC开关。
**需要权限**:ohos.permission.MANAGE_SECURE_SETTINGS
**系统能力**:SystemCapability.Communication.NFC
**返回值:**
| **类型** | **说明** |
| -------- | ------------------------------------------- |
| boolean | true:关闭NFC成功,&nbsp;false:关闭NFC失败。 |
## controller.isNfcOpen
isNfcOpen(): boolean
查询NFC是否打开。
**系统能力**:SystemCapability.Communication.NFC
**返回值:**
| **类型** | **说明** |
| -------- | ----------------------------------- |
| boolean | true:NFC打开,&nbsp;false:NFC关闭。 |
## controller.getNfcState
isNfcOpen(): boolean
查询NFC是否打开。
**系统能力**:SystemCapability.Communication.NFC
**返回值:**
| **类型** | **说明** |
| -------- | ----------------------------------- |
| boolean | true:NFC打开,&nbsp;false:NFC关闭。 |
## controller.on('nfcStateChange')
on(type: "notify", callback: Callback&lt;NfcState&gt;): void
注册NFC开关状态事件。
**系统能力**:SystemCapability.Communication.NFC
- **参数**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"nfcStateChange"字符串 |
| callback | Callback&lt;NfcState&gt; | 是 | 状态改变回调函数。 |
## controller.off('nfcStateChange')
off(type: "nfcStateChange", callback?: Callback&lt;NfcState&gt;): void
取消NFC开关状态事件的注册。
**系统能力**:SystemCapability.Communication.NFC
- **参数**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"nfcStateChange"字符串 |
| callback | Callback&lt;NfcState&gt; | 否 | 状态改变回调函数。如果callback不填,将“去注册”该事件关联的所有回调函数。 |
- 示例
```
import nfcController from '@ohos.nfcController';
var NFC_STATE_NOTIFY = "nfcStateChange";
var recvNfcStateNotifyFunc = result => {
console.info("nfc state receive state: " + result);
}
// 注册事件
nfcController.on(NFC_STATE_NOTIFY, recvNfcStateNotifyFunc);
// 解注册事件
nfcController.off(NFC_STATE_NOTIFY, recvNfcStateNotifyFunc);
```
## NfcState
表示NFC状态的枚举。
| 名称 | 默认值 | 说明 |
| -------- | -------- | -------- |
| STATE_OFF | 1 | NFC关闭状态 |
| STATE_TURNING_ON | 2 | NFC正在打开状态 |
| STATE_ON | 3 | NFC打开状态 |
| STATE_TURNING_OFF | 4 | NFC正在关闭状态 |
# 标准NFC-Tag
本模块主要用于操作及管理NFC Tag。
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## **导入模块**
```
import tag from '@ohos.nfc.tag';
```
## tag.getNfcATag
getNfcATag(tagInfo: TagInfo): NfcATag
获取NFC A类型Tag对象
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.NFC
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| NfcATag | NFC A类型Tag对象 |
## tag.getNfcBTag
getNfcBTag(tagInfo: TagInfo): NfcBTag
获取NFC B类型Tag对象
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.NFC
**返回值:**
| **类型** | **说明** |
| -------- | ---------------- |
| NfcBTag | NFC B类型Tag对象 |
## tag.getNfcFTag
getNfcFTag(tagInfo: TagInfo): NfcFTag
获取NFC F类型Tag对象
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.NFC
**返回值:**
| **类型** | **说明** |
| -------- | ---------------- |
| NfcFTag | NFC F类型Tag对象 |
## tag.getNfcVTag
getNfcVTag(tagInfo: TagInfo): NfcVTag
获取NFC V类型Tag对象
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.NFC
返回值:
| **类型** | **说明** |
| -------- | ---------------- |
| NfcVTag | NFC V类型Tag对象 |
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册