1# @ohos.nfc.cardEmulation (Standard NFC Card Emulation) 2 3The **cardEmulation** module implements Near-Field Communication (NFC) card emulation. You can use the APIs provided by this module to determine the card emulation type supported and implement Host-based Card Emulation (HCE). 4 5> **NOTE** 6> 7> The initial APIs of this module are supported since API version 6. Newly added APIs will be marked with a superscript to indicate their earliest API version. 8 9## Modules to Import 10 11``` 12import cardEmulation from '@ohos.nfc.cardEmulation'; 13``` 14 15## FeatureType 16 17Enumerates the NFC card emulation types. 18 19> **NOTE** 20> This parameter is supported since API version 6 and deprecated since API version 9. You are advised to use [hasHceCapability](#hashcecapability9). 21 22**System capability**: SystemCapability.Communication.NFC.CardEmulation 23 24| Name| Value| Description| 25| -------- | -------- | -------- | 26| HCE | 0 | HCE.| 27| UICC | 1 | Subscriber identity module (SIM) card emulation.| 28| ESE | 2 | embedded Secure Element (eSE) emulation.| 29 30## CardType<sup>9+</sup> 31 32Enumerates the types of services used by the card emulation application. 33 34**System capability**: SystemCapability.Communication.NFC.CardEmulation 35 36| Name| Value| Description| 37| -------- | -------- | -------- | 38| PAYMENT | "payment" | Payment type.| 39| OTHER | "other" | Other types.| 40 41## isSupported 42 43isSupported(feature: number): boolean 44 45Checks whether a certain type of card emulation is supported. 46 47> **NOTE** 48> This parameter is supported since API version 6 and deprecated since API version 9. You are advised to use [hasHceCapability](#hashcecapability9). 49 50**System capability**: SystemCapability.Communication.NFC.CardEmulation 51 52**Parameters** 53 54| Name | Type | Mandatory| Description | 55| ------- | -------- | ---- | ----------------------- | 56| feature | number | Yes | Card emulation type. For details, see [FeatureType](#featuretype).| 57 58**Return value** 59 60| **Type**| **Description**| 61| -------- | -------- | 62| boolean | Returns **true** if the card emulation type is supported; returns **false** otherwise.| 63 64## hasHceCapability<sup>9+</sup> 65 66hasHceCapability(): boolean 67 68Checks whether HCE is supported. 69 70**System capability**: SystemCapability.Communication.NFC.CardEmulation 71 72**Required permissions**: ohos.permission.NFC_CARD_EMULATION 73 74**Return value** 75 76| **Type**| **Description**| 77| -------- | -------- | 78| boolean | Returns **true** if HCE is supported; returns **false** otherwise.| 79 80## isDefaultService<sup>9+</sup> 81 82isDefaultService(elementName: ElementName, type: CardType): boolean 83 84Checks whether an application is the default application of the specified service type. 85 86**System capability**: SystemCapability.Communication.NFC.CardEmulation 87 88**Required permissions**: ohos.permission.NFC_CARD_EMULATION 89 90**Parameters** 91 92| Name | Type | Mandatory| Description | 93| ------- | -------- | ---- | ----------------------- | 94| elementName | [ElementName](js-apis-bundleManager-elementName.md#elementname) | Yes| Application description, which consists of the bundle name and component name.| 95| type | [CardType](#cardtype9) | Yes| Card emulation service type.| 96 97**Return value** 98 99| **Type**| **Description**| 100| -------- | -------- | 101| boolean | Returns **true** if the application is the default payment application; returns **false** otherwise.| 102 103**Example** 104 105```js 106import cardEmulation from '@ohos.nfc.cardEmulation'; 107 108var isHceSupported = cardEmulation.isSupported(cardEmulation.FeatureType.HCE); 109if (!isHceSupported) { 110 console.log('this device is not supported for HCE, ignore it.'); 111 return; 112} 113 114var hasHceCap = cardEmulation.hasHceCapability(); 115if (!hasHceCap) { 116 console.log('this device hasHceCapability false, ignore it.'); 117 return; 118} 119 120var elementName = { 121 "bundleName": "com.example.myapplication", 122 "abilityName": "EntryAbility", 123}; 124var isDefaultService = cardEmulation.isDefaultService(elementName, cardEmulation.CardType.PAYMENT); 125console.log('is the app is default service for this card type: ' + isDefaultService); 126``` 127