harmony 鸿蒙@ohos.nfc.cardEmulation (标准NFC-cardEmulation)

  • 2022-08-09
  • 浏览 (849)

@ohos.nfc.cardEmulation (标准NFC-cardEmulation)

本模块主要提供NFC卡模拟业务,包括判断支持哪种卡模拟类型,HCE卡模拟的业务实现等。

说明:

本模块首批接口从API version 6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

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

FeatureType

定义不同的NFC卡模拟类型。

说明: 从 API version 6 开始支持,从 API version 9 开始废弃,建议使用hasHceCapability替代。

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

名称 说明
HCE 0 HCE 卡模拟。
UICC 1 SIM 卡模拟。
ESE 2 ESE卡模拟。

CardType9+

定义卡模拟应用所使用的业务类型,是支付类型,还是其他类型。

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

名称 说明
PAYMENT “payment” 卡模拟应用所使用的业务是支付类型。
OTHER “other” 卡模拟应用所使用的业务是其他类型。

isSupported

isSupported(feature: number): boolean

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

说明: 从 API version 6 开始支持,从 API version 9 开始废弃,建议使用hasHceCapability替代。

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

参数:

参数名 类型 必填 说明
feature number 卡模拟类型值,详细请见FeatureType枚举值。

返回值:

类型 说明
boolean true: 支持该类型卡模拟, false: 不支持该类型卡模拟。

hasHceCapability9+

hasHceCapability(): boolean

判断是否支持HCE功能。

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

需要权限: ohos.permission.NFC_CARD_EMULATION

返回值:

类型 说明
boolean true: 支持HCE, false: 不支持HCE。

isDefaultService9+

isDefaultService(elementName: ElementName, type: CardType): boolean

判断指定的应用是否为指定业务类型的默认应用。

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

需要权限: ohos.permission.NFC_CARD_EMULATION

参数:

参数名 类型 必填 说明
elementName ElementName 应用的描述,由Bundle名称和组件名称组成。
type CardType 卡模拟业务类型。

返回值:

类型 说明
boolean true: 是默认支付应用, false: 不是默认支付应用。

HceService8+

提供HCE卡模拟的实现,主要包括接收对端读卡设备的APDU数据,并响应APDU数据到对端读卡设备。使用HCE相关接口前,必须先判断设备是否支持HCE卡模拟能力。暂不支持使用,仅做接口声明。

startHCE8+

startHCE(aidList: string[]): boolean

启动HCE业务功能。包括设置当前应用为前台优先,动态注册AID列表。暂不支持使用,仅做接口声明。

说明: 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用start替代。

需要权限: ohos.permission.NFC_CARD_EMULATION

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

参数:

参数名 类型 必填 说明
aidList string[] 动态注册卡模拟的AID列表。

start9+

start(elementName: ElementName, aidList: string[]): void

启动HCE业务功能。包括设置当前应用为前台优先,动态注册AID列表。暂不支持使用,仅做接口声明。

需要权限: ohos.permission.NFC_CARD_EMULATION

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

参数:

参数名 类型 必填 说明
elementName ElementName 服务能力的元素名称。
aidList string[] 动态注册卡模拟的AID列表。

错误码:

以下错误码的详细介绍请参见NFC错误码

错误码ID 错误信息
3100301 Card emulation running state is abnormal in service.

stopHCE8+

stopHCE(): boolean

停止HCE业务功能。包括退出当前应用前台优先,释放动态注册的AID列表。暂不支持使用,仅做接口声明。

说明: 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用stop替代。

需要权限: ohos.permission.NFC_CARD_EMULATION

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

stop9+

stop(elementName: ElementName): void;

停止HCE业务功能。包括退出当前应用前台优先,释放动态注册的AID列表。暂不支持使用,仅做接口声明。

需要权限: ohos.permission.NFC_CARD_EMULATION

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

参数:

参数名 类型 必填 说明
elementName ElementName 服务能力的元素名称。

错误码:

以下错误码的详细介绍请参见NFC错误码

错误码ID 错误信息
3100301 Card emulation running state is abnormal in service.

on8+

on(type: “hceCmd”, callback: AsyncCallback): void;

订阅回调,用于接收对端读卡设备发送的APDU数据。暂不支持使用,仅做接口声明。

需要权限: ohos.permission.NFC_CARD_EMULATION

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

参数:

参数名 类型 必填 说明
type string 固定填”hceCmd”字符串。
callback AsyncCallback 订阅的事件回调,入参是符合APDU协议的数据,每个number十六进制表示,范围是0x00~0xFF。

sendResponse8+

sendResponse(responseApdu: number[]): void;

发送APDU数据到对端读卡设备。暂不支持使用,仅做接口声明。

说明: 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用transmit替代。

需要权限: ohos.permission.NFC_CARD_EMULATION

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

参数:

参数名 类型 必填 说明
responseApdu number[] 发送到对端读卡设备的符合APDU协议的数据,每个number十六进制表示,范围是0x00~0xFF。

transmit9+

transmit(response: number[]): Promise<void>;

发送APDU数据到对端读卡设备。暂不支持使用,仅做接口声明。

需要权限: ohos.permission.NFC_CARD_EMULATION

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

参数:

参数名 类型 必填 说明
responseApdu number[] 发送到对端读卡设备的符合APDU协议的数据,每个number十六进制表示,范围是0x00~0xFF。

返回值:

类型 说明
Promise<void> 表示异步回调完成。

错误码:

以下错误码的详细介绍请参见NFC错误码

错误码ID 错误信息
3100301 Card emulation running state is abnormal in service.

transmit9+

transmit(response: number[], callback: AsyncCallback<void>): void;

发送APDU数据到对端读卡设备。暂不支持使用,仅做接口声明。

需要权限: ohos.permission.NFC_CARD_EMULATION

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

参数:

参数名 类型 必填 说明
responseApdu number[] 发送到对端读卡设备的符合APDU协议的数据,每个number十六进制表示,范围是0x00~0xFF。
callback AsyncCallback<void> 回调函数void

错误码:

以下错误码的详细介绍请参见NFC错误码

错误码ID 错误信息
3100301 Card emulation running state is abnormal in service.

示例:

import cardEmulation from '@ohos.nfc.cardEmulation';
import bundleManager from '@ohos.bundle.bundleManager';

let isHceSupported = cardEmulation.isSupported(cardEmulation.FeatureType.HCE);
if (!isHceSupported) {
    console.log('this device is not supported for HCE, ignore it.');
}

let hasHceCap = cardEmulation.hasHceCapability();
if (!hasHceCap) {
    console.log('this device hasHceCapability false, ignore it.');
}

let elementName: bundleManager.ElementName = {
    bundleName : "com.example.myapplication",
    abilityName : "EntryAbility",
};
let isDefaultService = cardEmulation.isDefaultService(elementName, cardEmulation.CardType.PAYMENT);
console.log('is the app is default service for this card type: ' + isDefaultService);

你可能感兴趣的鸿蒙文章

harmony 鸿蒙接口

harmony 鸿蒙系统公共事件定义(待停用)

harmony 鸿蒙系统公共事件定义

harmony 鸿蒙开发说明

harmony 鸿蒙企业设备管理概述(仅对系统应用开放)

harmony 鸿蒙BundleStatusCallback

harmony 鸿蒙@ohos.bundle.innerBundleManager (innerBundleManager模块)

harmony 鸿蒙@ohos.distributedBundle (分布式包管理)

harmony 鸿蒙@ohos.bundle (Bundle模块)

harmony 鸿蒙@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)

0  赞