You need to sign in or sign up before continuing.
提交 40f6a259 编写于 作者: A Annie_wang

update docs

Signed-off-by: NAnnie_wang <annie.wangli@huawei.com>
上级 56487141
# NFC Tags # NFC Tags
The **nfcTag** module provides methods for managing Near-Field Communication (NFC) tags. The **nfcTag** module provides APIs for managing Near-Field Communication (NFC) tags.
> **NOTE**<br> > **NOTE**<br>
> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version. > The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## **Declaration**
Before developing applications related to tag read and write, you must declare NFC-related attributes in the attribute configuration file of the applications. For example, declare the following attributes in the **module.json5** file:
```js
{
"module": {
// Attributes to declare.
"abilities": [
{
"skills": [
{
"actions": [
// Actions to declare.
// Add the nfc tag action.
"ohos.nfc.tag.action.TAG_FOUND"
]
}
],
"metadata": [
{
"name": "tag-tech",
"value": "NfcA"
},
{
"name": "tag-tech",
"value": "IsoDep"
},
// Add other technologies,
// such as NfcB, NfcF, NfcV, Ndef, MifareClassic, MifareUL, and NdefFormatable.
]
}
],
"requestPermissions": [
"name": "ohos.permission.NFC_TAG",
"reason": "tag",
]
}
}
```
> **CAUTION**<br>
>
> - The **actions** field is mandatory. It must be **ohos.nfc.tag.action.TAG_FOUND** and cannot be changed.
> - The **name** field of **metadata** is mandatory. It must be **tag-tech** and cannot be changed.
> - The **value** field of **metadata** is mandatory. It can be **NfcA**, **NfcB**, **NfcF**, **NfcV**, **IsoDep**, **Ndef**, **MifareClassic**, **MifareUL**, **NdefFormatable** or their combinations. Incorrect setting of this field will cause a parsing failure.
> - The **name** field of **requestPermissions** is mandatory. It must be **ohos.permission.NFC_TAG** and cannot be changed.
## **Modules to Import** ## **Modules to Import**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
``` ```
## **tag.TagInfo**
Before reading or writing data to a card with tags, the application must obtain **TagInfo** to determine the tag technologies supported by the card. Then, the application can invoke the correct API to communicate with the card.
```js
import tag from '@ohos.nfc.tag';
onCreate(want, launchParam) {
// Add other code here.
// want is initialized by the NFC service and contains taginfo.
var tagInfo = tag.getTagInfo(want);
if (tagInfo == undefined) {
console.log("no TagInfo to be created, ignore it.");
return;
}
var isNfcATag = false;
for (var i = 0; i < tagInfo.technology.length; i++) {
if (tagInfo.technology[i] == tag.NFC_A) {
isNfcATag = true;
break;
}
// Also check for technology tag.NFC_B, NFC_F, NFC_V, ISO_DEP, NDEF, MIFARE_CLASSIC, MIFARE_ULTRALIGHT, and NDEF_FORMATABLE.
}
if (isNfcATag) {
var nfcA = tag.getNfcATag(taginfo);
// Other code to read or write this tag.
}
// use the same code to handle "NfcA/NfcB/NfcF/NfcV/IsoDep/Ndef/MifareClassic/MifareUL/NdefFormatable", such as,
// var isoDep = tag.getIsoDepTag(taginfo);
}
```
## tag.getNfcATag ## tag.getNfcATag
getNfcATag(tagInfo: [TagInfo](#taginfo9)): [NfcATag](js-apis-nfctech.md#nfcatag) getNfcATag(tagInfo: [TagInfo](#taginfo)): [NfcATag](js-apis-nfctech.md#nfcatag)
Obtains an **NfcATag** object, which allows access to the tags that use the NFC-A technology. Obtains an **NfcATag** object, which allows access to the tags that use the NFC-A technology.
...@@ -29,7 +110,7 @@ Obtains an **NfcATag** object, which allows access to the tags that use the NFC- ...@@ -29,7 +110,7 @@ Obtains an **NfcATag** object, which allows access to the tags that use the NFC-
## tag.getNfcBTag ## tag.getNfcBTag
getNfcBTag(tagInfo: [TagInfo](#taginfo9)): [NfcBTag](js-apis-nfctech.md#nfcbtag) getNfcBTag(tagInfo: [TagInfo](#taginfo)): [NfcBTag](js-apis-nfctech.md#nfcbtag)
Obtains an **NfcBTag** object, which allows access to the tags that use the NFC-B technology. Obtains an **NfcBTag** object, which allows access to the tags that use the NFC-B technology.
...@@ -45,7 +126,7 @@ Obtains an **NfcBTag** object, which allows access to the tags that use the NFC- ...@@ -45,7 +126,7 @@ Obtains an **NfcBTag** object, which allows access to the tags that use the NFC-
## tag.getNfcFTag ## tag.getNfcFTag
getNfcFTag(tagInfo: [TagInfo](#taginfo9)): [NfcFTag](js-apis-nfctech.md#nfcftag) getNfcFTag(tagInfo: [TagInfo](#taginfo)): [NfcFTag](js-apis-nfctech.md#nfcftag)
Obtains an **NfcFTag** object, which allows access to the tags that use the NFC-F technology. Obtains an **NfcFTag** object, which allows access to the tags that use the NFC-F technology.
...@@ -61,7 +142,7 @@ Obtains an **NfcFTag** object, which allows access to the tags that use the NFC- ...@@ -61,7 +142,7 @@ Obtains an **NfcFTag** object, which allows access to the tags that use the NFC-
## tag.getNfcVTag ## tag.getNfcVTag
getNfcVTag(tagInfo: [TagInfo](#taginfo9)): [NfcVTag](js-apis-nfctech.md#nfcvtag) getNfcVTag(tagInfo: [TagInfo](#taginfo)): [NfcVTag](js-apis-nfctech.md#nfcvtag)
Obtains an **NfcVTag** object, which allows access to the tags that use the NFC-V technology. Obtains an **NfcVTag** object, which allows access to the tags that use the NFC-V technology.
...@@ -77,11 +158,10 @@ Obtains an **NfcVTag** object, which allows access to the tags that use the NFC- ...@@ -77,11 +158,10 @@ Obtains an **NfcVTag** object, which allows access to the tags that use the NFC-
## tag.getIsoDepTag<sup>9+</sup> ## tag.getIsoDepTag<sup>9+</sup>
getIsoDepTag(tagInfo: [TagInfo](#taginfo9)): [IsoDepTag](js-apis-nfctech.md#isodeptag9 ) getIsoDepTag(tagInfo: [TagInfo](#taginfo)): [IsoDepTag](js-apis-nfctech.md#isoDepTag9 )
Obtains an **IsoDepTag** object, which allows access to the tags that use the ISO-DEP technology. Obtains an **IsoDepTag** object, which allows access to the tags that use the ISO-DEP technology.
**Required permissions**: ohos.permission.NFC_TAG **Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core **System capability**: SystemCapability.Communication.NFC.Core
...@@ -94,7 +174,7 @@ Obtains an **IsoDepTag** object, which allows access to the tags that use the IS ...@@ -94,7 +174,7 @@ Obtains an **IsoDepTag** object, which allows access to the tags that use the IS
## tag.getNdefTag<sup>9+</sup> ## tag.getNdefTag<sup>9+</sup>
getNdefTag(tagInfo: [TagInfo](#taginfo9)): [NdefTag](js-apis-nfctech.md#ndeftag9) getNdefTag(tagInfo: [TagInfo](#taginfo)): [NdefTag](js-apis-nfctech.md#ndeftag9)
Obtains an **NdefTag** object, which allows access to the tags in the NFC Data Exchange Format (NDEF). Obtains an **NdefTag** object, which allows access to the tags in the NFC Data Exchange Format (NDEF).
...@@ -111,7 +191,7 @@ Obtains an **NdefTag** object, which allows access to the tags in the NFC Data E ...@@ -111,7 +191,7 @@ Obtains an **NdefTag** object, which allows access to the tags in the NFC Data E
## tag.getMifareClassicTag<sup>9+</sup> ## tag.getMifareClassicTag<sup>9+</sup>
getMifareClassicTag(tagInfo: [TagInfo](#taginfo9)): [MifareClassicTag](js-apis-nfctech.md#mifareclassictag-9) getMifareClassicTag(tagInfo: [TagInfo](#taginfo)): [MifareClassicTag](js-apis-nfctech.md#mifareclassictag-9)
Obtains a **MifareClassicTag** object, which allows access to the tags that use MIFARE Classic. Obtains a **MifareClassicTag** object, which allows access to the tags that use MIFARE Classic.
...@@ -127,7 +207,7 @@ Obtains a **MifareClassicTag** object, which allows access to the tags that use ...@@ -127,7 +207,7 @@ Obtains a **MifareClassicTag** object, which allows access to the tags that use
## tag.getMifareUltralightTag<sup>9+</sup> ## tag.getMifareUltralightTag<sup>9+</sup>
getMifareUltralightTag(tagInfo: [TagInfo](#taginfo9)): [MifareUltralightTag](js-apis-nfctech.md#mifareultralighttag9) getMifareUltralightTag(tagInfo: [TagInfo](#taginfo)): [MifareUltralightTag](js-apis-nfctech.md#mifareultralighttag9)
Obtains a **MifareUltralightTag** object, which allows access to the tags that use MIFARE Ultralight. Obtains a **MifareUltralightTag** object, which allows access to the tags that use MIFARE Ultralight.
...@@ -143,7 +223,7 @@ Obtains a **MifareUltralightTag** object, which allows access to the tags that u ...@@ -143,7 +223,7 @@ Obtains a **MifareUltralightTag** object, which allows access to the tags that u
## tag.getNdefFormatableTag<sup>9+</sup> ## tag.getNdefFormatableTag<sup>9+</sup>
getNdefFormatableTag(tagInfo: [TagInfo](#taginfo9)): [NdefFormatableTag](js-apis-nfctech.md#ndefformatabletag9) getNdefFormatableTag(tagInfo: [TagInfo](#taginfo)): [NdefFormatableTag](js-apis-nfctech.md#ndefformatabletag9)
Obtains an **NdefFormatableTag** object, which allows access to the tags that are NDEF formattable. Obtains an **NdefFormatableTag** object, which allows access to the tags that are NDEF formattable.
...@@ -157,15 +237,143 @@ Obtains an **NdefFormatableTag** object, which allows access to the tags that ar ...@@ -157,15 +237,143 @@ Obtains an **NdefFormatableTag** object, which allows access to the tags that ar
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefFormatableTag](js-apis-nfctech.md#ndefformatabletag) | **NdefFormatableTag** object obtained.| | [NdefFormatableTag](js-apis-nfctech.md#ndefformatabletag) | **NdefFormatableTag** object obtained.|
## TagInfo<sup>9+</sup> ## tag.getTagInfo<sup>9+</sup>
getTagInfo(want: Want): [TagInfo](#taginfo)
Obtains **TagInfo** from **Want**, which is initialized by the NFC service and contains the attributes required by **TagInfo**.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
**Return value**
| **Type**| **Description** |
| ------------------ | --------------------------|
| [TagInfo](#taginfo) | **TagInfo** object obtained.|
## TagInfo
Defines the **TagInfo** object, which provides information about the tag technologies supported by a card.
Represents the NFC tag information. **Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
| **Name**| **Type**| **Description**| | **Name**| **Type**| **Description**|
| -------- | -------- | -------- | | -------- | -------- | -------- |
| uid | string | UID of the tag.| | uid<sup>9+</sup> | number[] | Tag unique identifier (UID). Each number of the UID is a hexadecimal number ranging from **0x00** to **0xFF**.|
| technology | number[] | Technology supported by the tag.| | technology<sup>9+</sup> | number[] | Supported technologies. Each number is a constant indicating the supported technology.|
| extrasData | PacMap[] | Additional information about the tag.| | supportedProfiles | number[] | Supported technologies. This parameter is not supported since API version 9 and is replaced by **technology**.|
| tagRfDiscId | number | RF discovery ID of the tag.|
| remoteTagService | rpc.RemoteObject | RPC remote object of the tag service.| ## NdefRecord<sup>9+</sup>
| supportedProfiles | number[] | Profiles supported by the tag.| Defines an NDEF tag record. For details, see *NFCForum-TS-NDEF_1.0*.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
| **Name**| **Type**| **Description**|
| -------- | -------- | -------- |
| tnf | number | Type name field (TNF) of an NDEF record.|
| rtdType| number[] | Record type definition (RTD) of an NDEF record. Each number is a hexadecimal number ranging from **0x00** to **0xFF**.|
| id | number[] | ID of an NDEF record. Each number is a hexadecimal number ranging from **0x00** to **0xFF**.|
| payload | number[] | Payload of an NDEF record. Each number is a hexadecimal number ranging from **0x00** to **0xFF**.|
## Technology Type Definition
Enumerates the tag technology types.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| NFC_A | 1 | NFC-A (ISO 14443-3A).|
| NFC_B | 2 | NFC-A (ISO 14443-3B).|
| ISO_DEP | 3 | ISO-DEP (ISO 14443-4).|
| NFC_F | 4 | NFC-F (JIS 6319-4).|
| NFC_V | 5 | NFC-V (ISO 15693).|
| NDEF | 6 | NDEF.|
| MIFARE_CLASSIC | 8 | MIFARE Classic.|
| MIFARE_ULTRALIGHT | 9 | MIFARE Ultralight.|
| NDEF_FORMATABLE<sup>9+</sup> | 10 | NDEF formattable.|
## TnfType<sup>9+</sup>
Enumerates the TNF types. For details, see *NFCForum-TS-NDEF_1.0*.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| TNF_EMPTY | 0x0 | Empty.|
| TNF_WELL_KNOWN | 0x01 | NFC Forum Well Known Type [NFC RTD].|
| TNF_MEDIA | 0x02 | Media-type as defined in RFC 2046 [RFC 2046].|
| TNF_ABSOLUTE_URI | 0x03 | Absolute URI as defined in RFC 3986 [RFC 3986].|
| TNF_EXT_APP | 0x04 | NFC Forum external type [NFC RTD].|
| TNF_UNKNOWN | 0x05 | Unknown.|
| TNF_UNCHANGED | 0x06 | Unchanged (see section 2.3.3).|
## NDEF Record RTD
Enumerates the NDEF record types. For details about the RTD, see *NFCForum-TS-NDEF_1.0*.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| RTD_TEXT<sup>9+</sup> | [0x54] | NDEF record of the text type.|
| RTD_URI<sup>9+</sup> | [0x55] | NDEF record of the URI type.|
## NfcForumType<sup>9+</sup>
Enumerates the NFC Forum tag types.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| NFC_FORUM_TYPE_1 | 1 | NFC Forum tag type 1.|
| NFC_FORUM_TYPE_2 | 2 | NFC Forum tag type 2.|
| NFC_FORUM_TYPE_3 | 3 | NFC Forum tag type 3.|
| NFC_FORUM_TYPE_4 | 4 | NFC Forum tag type 4.|
| MIFARE_CLASSIC | 101 | MIFARE Classic type.|
## MifareClassicType<sup>9+</sup>
Enumerates the MIFARE Classic tag types.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| TYPE_UNKNOWN | -1 | Unknown type.|
| TYPE_CLASSIC | 0 | MIFARE Classic.|
| TYPE_PLUS | 1 | MIFARE Plus.|
| TYPE_PRO | 2 | MIFARE Pro.|
## MifareClassicSize<sup>9+</sup>
Enumerates the storage sizes of MIFARE Classic tags.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| MC_SIZE_MINI | 320 | Each tag has 5 sectors, and each sector has 4 blocks.|
| MC_SIZE_1K | 1024 | Each tag has 16 sectors, and each sector has 4 blocks.|
| MC_SIZE_2K | 2048 | Each tag has 32 sectors, and each sector has 4 blocks.|
| MC_SIZE_4K | 4096 | Each tag has 40 sectors, and each sector has 4 blocks.|
### MifareUltralightType<sup>9+</sup>
Enumerates the MIFARE Ultralight tag types.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC.Core
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| TYPE_UNKOWN | -1 | Unknown type.|
| TYPE_ULTRALIGHT | 1 | MIFARE Ultralight.|
| TYPE_ULTRALIGHT_C | 2 | MIFARE Ultralight C.|
<!--no_check-->
...@@ -33,16 +33,17 @@ Obtains the SAK value of this NFC-A tag. ...@@ -33,16 +33,17 @@ Obtains the SAK value of this NFC-A tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | SAK value obtained.| | number | SAK value obtained. The SAK is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'nfcA' correctly.
let sak = tag.getNfcATag(taginfo).getSak();
console.log("sak:" +sak); let sak = nfcA.getSak();
console.log("nfcA sak: " + sak);
``` ```
### NfcATag.getAtqa ### NfcATag.getAtqa
...@@ -59,16 +60,16 @@ Obtains the ATQA value of this NFC-A tag. ...@@ -59,16 +60,16 @@ Obtains the ATQA value of this NFC-A tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number[] | ATQA value obtained.| | number[] | ATQA value obtained. Each number of the ATQA is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'nfcA' correctly.
let atqa = tag.getNfcATag(taginfo).getAtqa(); let atqa = nfcA.getAtqa();
console.log("atqa:" +atqa); console.log("nfcA atqa: " + atqa);
``` ```
## NfcBTag ## NfcBTag
...@@ -93,16 +94,16 @@ Obtains the application data of this NFC-B tag. ...@@ -93,16 +94,16 @@ Obtains the application data of this NFC-B tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number[] | Application data obtained.| | number[] | Application data obtained. Each number in the return result is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'nfcB' correctly.
let appData = tag.getNfcBTag(taginfo).getRespAppData(); let respAppData = nfcB.getRespAppData();
console.log("appData:" +appData); console.log("nfcB respAppData: " + respAppData);
``` ```
### NfcBTag.getRespProtocol ### NfcBTag.getRespProtocol
...@@ -119,16 +120,16 @@ Obtains the protocol information of this NFC-B tag. ...@@ -119,16 +120,16 @@ Obtains the protocol information of this NFC-B tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number[] | Protocol information obtained.| | number[] | Protocol information obtained. Each number in the return result is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'nfcB' correctly.
let protocol = tag.getNfcBTag(taginfo).getRespProtocol(); let respProtocol = nfcB.getRespProtocol();
console.log("appData:" +protocol); console.log("nfcB respProtocol: " + respProtocol);
``` ```
## NfcFTag ## NfcFTag
...@@ -153,16 +154,16 @@ Obtains the system code from this NFC-F tag. ...@@ -153,16 +154,16 @@ Obtains the system code from this NFC-F tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number[] | System code obtained.| | number[] | System code obtained. Each number in the system code is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'nfcF' correctly.
let systemCode = tag.getNfcFTag(taginfo).getSystemCode(); let systemCode = nfcF.getSystemCode();
console.log("systemCode:" +systemCode); console.log("nfcF systemCode: " + systemCode);
``` ```
### NfcFTag.getPmm ### NfcFTag.getPmm
...@@ -179,16 +180,16 @@ Obtains the PMm (consisting of the IC code and manufacturer parameters) informat ...@@ -179,16 +180,16 @@ Obtains the PMm (consisting of the IC code and manufacturer parameters) informat
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number[] | PMm information obtained.| | number[] | PMm information obtained. Each number in the return result is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'nfcF' correctly.
let pmm = tag.getNfcFTag(taginfo).getPmm(); let pmm = nfcF.getPmm();
console.log("pmm:" +pmm); console.log("nfcF pmm: " + pmm);
``` ```
## NfcVTag ## NfcVTag
...@@ -213,16 +214,16 @@ Obtains the response flags from this NFC-V tag. ...@@ -213,16 +214,16 @@ Obtains the response flags from this NFC-V tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | Response flags obtained.| | number | Response flags obtained. The value is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'nfcV' correctly.
let flags = tag.getNfcVTag(taginfo).getResponseFlags(); let responseFlags = nfcV.getResponseFlags();
console.log("flags:" +flags); console.log("nfcV responseFlags: " + responseFlags);
``` ```
### NfcvTag.getDsfId ### NfcvTag.getDsfId
...@@ -239,16 +240,16 @@ Obtains the data storage format identifier (DSFID) from this NFC-V tag. ...@@ -239,16 +240,16 @@ Obtains the data storage format identifier (DSFID) from this NFC-V tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | DSFID obtained.| | number | DSFID obtained. The value is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'nfcV' correctly.
let dsfId = tag.getNfcVTag(taginfo).getDsfId(); let dsfId = nfcV.getDsfId();
console.log("dsfId:" +dsfId); console.log("nfcV dsfId: " + dsfId);
``` ```
## IsoDepTag<sup>9+</sup> ## IsoDepTag<sup>9+</sup>
...@@ -261,7 +262,7 @@ The following describes the unique interfaces of **IsoDepTag**. ...@@ -261,7 +262,7 @@ The following describes the unique interfaces of **IsoDepTag**.
### IsoDepTag.getHistoricalBytes<sup>9+</sup> ### IsoDepTag.getHistoricalBytes<sup>9+</sup>
getHistoricalBytes(): string getHistoricalBytes(): number[]
Obtains the historical bytes of this tag. Obtains the historical bytes of this tag.
...@@ -273,21 +274,21 @@ Obtains the historical bytes of this tag. ...@@ -273,21 +274,21 @@ Obtains the historical bytes of this tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| string | Historical bytes obtained.| | number[] | Historical bytes obtained. Each number in the return result is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'isoDep' correctly.
let historicalBytes = tag.getIsoDepTag(taginfo).getHistoricalBytes(); let historicalBytes = isoDep.getHistoricalBytes();
console.log("historicalBytes:" +historicalBytes); console.log("isoDep historicalBytes: " + historicalBytes);
``` ```
### IsoDepTag.getHiLayerResponse<sup>9+</sup> ### IsoDepTag.getHiLayerResponse<sup>9+</sup>
getHiLayerResponse(): string getHiLayerResponse(): number[]
Obtains the HiLayer response of this tag. Obtains the HiLayer response of this tag.
...@@ -299,16 +300,16 @@ Obtains the HiLayer response of this tag. ...@@ -299,16 +300,16 @@ Obtains the HiLayer response of this tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| string | HiLayer response obtained.| | number[] | HiLayer response obtained. Each number in the return result is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'isoDep' correctly.
let hiLayerResponse = tag.getIsoDepTag(taginfo).getHiLayerResponse(); let hiLayerResponse = isoDep.getHiLayerResponse();
console.log("hiLayerResponse:" +hiLayerResponse); console.log("isoDep hiLayerResponse: " + hiLayerResponse);
``` ```
### IsoDepTag.isExtendedApduSupported<sup>9+</sup> ### IsoDepTag.isExtendedApduSupported<sup>9+</sup>
...@@ -332,10 +333,13 @@ Checks whether an extended application protocol data unit (APDU) is supported. T ...@@ -332,10 +333,13 @@ Checks whether an extended application protocol data unit (APDU) is supported. T
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'isoDep' correctly.
tag.getIsoDepTag(taginfo).isExtendedApduSupported().then(function (has) { isoDep.isExtendedApduSupported()
console.log('has: ' + has) .then((data) => {
}) console.log("isoDep isExtendedApduSupported data: " + data);
}).catch((err)=> {
console.log("isoDep isExtendedApduSupported err: " + err);
});
``` ```
### IsoDepTag.isExtendedApduSupported<sup>9+</sup> ### IsoDepTag.isExtendedApduSupported<sup>9+</sup>
...@@ -357,11 +361,14 @@ Checks whether an extended APDU is supported. This API uses an asynchronous call ...@@ -357,11 +361,14 @@ Checks whether an extended APDU is supported. This API uses an asynchronous call
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'isoDep' correctly.
tag.getIsoDepTag(taginfo).isExtendedApduSupported(function (error, has) { isoDep.isExtendedApduSupported((err, data)=> {
console.log(JSON.stringify(error)) if (err) {
console.log('has: ' + has) console.log("isoDep isExtendedApduSupported err: " + err);
}) } else {
console.log("isoDep isExtendedApduSupported data: " + data);
}
});
``` ```
## NdefTag<sup>9+</sup> ## NdefTag<sup>9+</sup>
...@@ -374,7 +381,7 @@ The following describes the unique interfaces of **NdefTag**. ...@@ -374,7 +381,7 @@ The following describes the unique interfaces of **NdefTag**.
### NdefTag.createNdefMessage<sup>9+</sup> ### NdefTag.createNdefMessage<sup>9+</sup>
createNdefMessage(data: string): [NdefMessage](#ndefmessage9) createNdefMessage(data: number[]): [NdefMessage](#ndefmessage9)
Creates an NDEF message using raw bytes. Creates an NDEF message using raw bytes.
...@@ -386,28 +393,30 @@ Creates an NDEF message using raw bytes. ...@@ -386,28 +393,30 @@ Creates an NDEF message using raw bytes.
| **Name**| **Type**| **Mandatory**| **Description**| | **Name**| **Type**| **Mandatory**| **Description**|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| data | string | Yes| Raw bytes of the string type.| | data | number[] | Yes| Raw bytes used to create the message. Each number is a hexadecimal number ranging from **0x00** to **0xFF**.|
**Return value** **Return value**
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefMessage](#ndefmessage9) | NDEF message created.| | [NdefMessage](#ndefmessage9) | NDEF message created. For details, see *NFCForum-TS-NDEF_1.0*.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
let NdefMessage = tag.NdefTag(taginfo).createNdefMessage(data); let rawData = [0x00, 0xa4, 0x04, ......]; // change the raw data bytes tobe correct.
let ndefMessage = ndef.createNdefMessage(rawData);
console.log("ndef ndefMessage: " + ndefMessage);
``` ```
## NdefMessage<sup>9+</sup> ## NdefMessage<sup>9+</sup>
### NdefMessage.getNdefRecords<sup>9+</sup> ### NdefMessage.getNdefRecords<sup>9+</sup>
getNdefRecords(): [NdefRecord](#ndefrecord9)[ ] getNdefRecords(): [NdefRecord](js-apis-nfcTag.md#ndefrecord9)[ ]
Obtains all NDEF records. Obtains all NDEF records.
...@@ -419,33 +428,18 @@ Obtains all NDEF records. ...@@ -419,33 +428,18 @@ Obtains all NDEF records.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefRecord](#ndefrecord9)[ ] | All records obtained.| | [NdefRecord](js-apis-nfcTag.md#ndefrecord9)[ ] | List of NDEF records obtained. For details, see *NFCForum-TS-NDEF_1.0*.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
let NdefRecord = tag.NdefTag(taginfo).getNdefRecords(); let ndefRecords = ndef.getNdefRecords();
console.log("ndef ndefRecords number: " + ndefRecords.length);
``` ```
## NdefRecord<sup>9+</sup>
| **Name**| **Type**| **Description**|
| -------- | -------- | -------- |
| tnf | number | UID of the tag.|
| [rtdType](#rtdtype9) | string | NFC Record Type Definition (RTD) supported by the tag.|
| id | string | Additional information about the tag.|
| payload | string | RF discovery ID of the tag.|
## RtdType<sup>9+</sup>
| **Name**| **Type**| **Description**|
| -------- | -------- | -------- |
| RTD_TEXT | 'T' | Text information.|
| RTD_URI | 'U' | Network address, email, or phone number.|
### NdefTag.createNdefMessage<sup>9+</sup> ### NdefTag.createNdefMessage<sup>9+</sup>
createNdefMessage(ndefRecords: NdefRecord[]): [NdefMessage](#ndefmessage9) createNdefMessage(ndefRecords: NdefRecord[]): [NdefMessage](#ndefmessage9)
...@@ -459,21 +453,32 @@ Creates an NDEF message using the NDEF records. ...@@ -459,21 +453,32 @@ Creates an NDEF message using the NDEF records.
**Parameters** **Parameters**
| **Name**| **Type**| **Mandatory**| **Description**| | **Name**| **Type**| **Mandatory**| **Description**|
| -------- | -------- | -------- | -------- | | -------- | -------- | -------- | -------- |
| ndefRecords | [NdefRecord](#ndefrecord9)[] | Yes| A list of NDEF records.| | ndefRecords | [NdefRecord](js-apis-nfcTag.md#ndefrecord9)[] | Yes| NDEF records used to create the NDEF message. For details, see *NFCForum-TS-NDEF_1.0*.|
**Return value** **Return value**
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefMessage](#ndefmessage9) | NDEF message created.| | [NdefMessage](#ndefmessage9) | NDEF message created. For details, see *NFCForum-TS-NDEF_1.0*.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
let NdefMessage = tag.NdefTag(taginfo).createNdefMessage(ndefRecords); let ndefRecords = [
// record format: tnf, rtdType, id, payload
// 1st record:
{tnf: 0x01, rtdType: [0x54], id: [0x01, 0x02, ...], payload: [0x00, 0xa4, 0x04, ...]},
// 2nd record:
{tnf: 0x02, rtdType: [0x55], id: [0x03, 0x04, ...], payload: [0x00, 0xa4, 0x04, ...]},
// other record if has one ...
];
let ndefMessage = ndef.createNdefMessage(ndefRecords);
console.log("ndef ndefMessage: " + ndefMessage);
``` ```
### NdefTag.getNdefTagType<sup>9+</sup> ### NdefTag.getNdefTagType<sup>9+</sup>
...@@ -490,22 +495,23 @@ Obtains the type of this NDEF tag. ...@@ -490,22 +495,23 @@ Obtains the type of this NDEF tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NfcForumType](#nfcforumtype9) | NDEF tag type obtained.| | [NfcForumType](js-apis-nfcTag.md#nfcforumtype9) | NDEF tag type obtained. It can be NFC FORUM TYPE 1, 2, 3, or 4.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
let NfcForumType = tag.NdefTag(taginfo).getNdefTagType(); let ndefTagType = ndef.getNdefTagType();
console.log("ndef ndefTagType: " + ndefTagType);
``` ```
### NdefTag.getNdefMessage<sup>9+</sup> ### NdefTag.getNdefMessage<sup>9+</sup>
getNdefMessage(): NdefMessage getNdefMessage(): NdefMessage
Obtains the NDEF message from the tag discovered. Obtains the NDEF message.
**Required permissions**: ohos.permission.NFC_TAG **Required permissions**: ohos.permission.NFC_TAG
...@@ -515,15 +521,16 @@ Obtains the NDEF message from the tag discovered. ...@@ -515,15 +521,16 @@ Obtains the NDEF message from the tag discovered.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [NdefMessage](#ndefmessage9) | NDEF message created.| | [NdefMessage](#ndefmessage9) | NDEF message obtained. For details, see *NFCForum-TS-NDEF_1.0*.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
let NdefMessage = tag.NdefTag(taginfo).getNdefMessage(); let ndefMessage = ndef.getNdefMessage();
console.log("ndef ndefMessage: " + ndefMessage);
``` ```
### NdefTag.isNdefWritable<sup>9+</sup> ### NdefTag.isNdefWritable<sup>9+</sup>
...@@ -547,10 +554,13 @@ Checks whether the NDEF tag is writable. This API uses a promise to return the r ...@@ -547,10 +554,13 @@ Checks whether the NDEF tag is writable. This API uses a promise to return the r
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefTag(taginfo).isNdefWritable().then(function (has) { ndef.isNdefWritable()
console.log(JSON.stringify(has)) .then((data) => {
}) console.log("ndef isNdefWritable data: " + data);
}).catch((err)=> {
console.log("ndef isNdefWritable err: " + err);
});
``` ```
### NdefTag.isNdefWritable<sup>9+</sup> ### NdefTag.isNdefWritable<sup>9+</sup>
...@@ -574,11 +584,14 @@ Checks whether the NDEF tag is writable. This API uses an asynchronous callback ...@@ -574,11 +584,14 @@ Checks whether the NDEF tag is writable. This API uses an asynchronous callback
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefTag(taginfo).isNdefWritable(function (error, has) { ndef.isNdefWritable((err, data)=> {
console.log(JSON.stringify(error)) if (err) {
console.log('has: ' + has) console.log("ndef isNdefWritable err: " + err);
}) } else {
console.log("ndef isNdefWritable data: " + data);
}
});
``` ```
### NdefTag.readNdef<sup>9+</sup> ### NdefTag.readNdef<sup>9+</sup>
...@@ -595,17 +608,20 @@ Reads the NDEF message from this tag. This API uses a promise to return the resu ...@@ -595,17 +608,20 @@ Reads the NDEF message from this tag. This API uses a promise to return the resu
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| Promise\<[NdefMessage](#ndefmessage9)> | Promise used to return the NDEF message read.| | Promise\<[NdefMessage](#ndefmessage9)> | Promise used to return the message read.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefTag(taginfo).readNdef().then(function (ndefMessage) { ndef.readNdef()
console.log(JSON.stringify(ndefMessage)) .then((data) => {
}) console.log("ndef readNdef data: " + data);
}).catch((err)=> {
console.log("ndef readNdef err: " + err);
});
``` ```
### NdefTag.readNdef<sup>9+</sup> ### NdefTag.readNdef<sup>9+</sup>
...@@ -629,11 +645,14 @@ Reads the NDEF message from this tag. This API uses an asynchronous callback to ...@@ -629,11 +645,14 @@ Reads the NDEF message from this tag. This API uses an asynchronous callback to
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefTag(taginfo).readNdef(function (error, ndefMessage) { ndef.readNdef((err, data)=> {
console.log(JSON.stringify(error)) if (err) {
console.log('ndefMessage: ' + ndefMessage) console.log("ndef readNdef err: " + err);
}) } else {
console.log("ndef readNdef data: " + data);
}
});
``` ```
### NdefTag.writeNdef<sup>9+</sup> ### NdefTag.writeNdef<sup>9+</sup>
...@@ -663,10 +682,15 @@ Writes an NDEF message to this tag. This API uses a promise to return the result ...@@ -663,10 +682,15 @@ Writes an NDEF message to this tag. This API uses a promise to return the result
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
NdefTag.writeNdef(msg).then(function (netHandle) { let ndefMessage = ndef.createNdefMessage([0x01, 0x02, ...]); // change the raw data to be correct.
console.log(JSON.stringify(netHandle))
}) ndef.writeNdef(ndefMessage)
.then((data) => {
console.log("ndef writeNdef data: " + data);
}).catch((err)=> {
console.log("ndef writeNdef err: " + err);
});
``` ```
### NdefTag.writeNdef<sup>9+</sup> ### NdefTag.writeNdef<sup>9+</sup>
...@@ -691,18 +715,22 @@ Writes an NDEF message to this tag. This API uses an asynchronous callback to re ...@@ -691,18 +715,22 @@ Writes an NDEF message to this tag. This API uses an asynchronous callback to re
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefTag(taginfo).write(msg, function (error, has) { let ndefMessage = ndef.createNdefMessage([0x01, 0x02, ...]); // change the raw data to be correct.
console.log(JSON.stringify(error)) ndef.writeNdef(ndefMessage, (err, data)=> {
console.log('has: ' + has) if (err) {
}) console.log("ndef writeNdef err: " + err);
} else {
console.log("ndef writeNdef data: " + data);
}
});
``` ```
### NdefTag.canSetReadOnly<sup>9+</sup> ### NdefTag.canSetReadOnly<sup>9+</sup>
canSetReadOnly(): Promise\<boolean> canSetReadOnly(): boolean
Checks whether this NDEF tag can be set to read-only. This API uses a promise to return the result. Checks whether this NDEF tag can be set to read-only.
**Required permissions**: ohos.permission.NFC_TAG **Required permissions**: ohos.permission.NFC_TAG
...@@ -712,45 +740,16 @@ Checks whether this NDEF tag can be set to read-only. This API uses a promise to ...@@ -712,45 +740,16 @@ Checks whether this NDEF tag can be set to read-only. This API uses a promise to
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| Promise&lt;boolean&gt; | Promise used to return the result. If the tag can be set to read-only, **true** is returned; otherwise, **false** is returned.| | boolean| Returns **true** if the tag can be set to read-only; returns **false** otherwise.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefTag(taginfo).canSetReadOnly().then(function (has) { var canSetReadOnly = ndef.canSetReadOnly();
console.log(JSON.stringify(has)) console.log("ndef canSetReadOnly: " + canSetReadOnly);
})
```
### NdefTag.canSetReadOnly<sup>9+</sup>
canSetReadOnly(callback: AsyncCallback&lt;boolean&gt;): void;
Checks whether this NDEF tag can be set to read-only. This API uses an asynchronous callback to return the result.
**Required permissions**: ohos.permission.NFC_TAG
**System capability**: SystemCapability.Communication.NFC
**Parameters**
| Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- |
| callback | AsyncCallback\<boolean> | Yes | Callback invoked to return the result. If the tag can be set to read-only, **true** is returned; otherwise, **false** is returned.|
**Example**
```js
import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched.
tag.NdefTag(taginfo).canSetReadOnly(function (error, has) {
console.log(JSON.stringify(error))
console.log('has: ' + has)
})
``` ```
### NdefTag.setReadOnly<sup>9+</sup> ### NdefTag.setReadOnly<sup>9+</sup>
...@@ -774,15 +773,18 @@ Sets this NDEF tag to read-only. This API uses a promise to return the result. ...@@ -774,15 +773,18 @@ Sets this NDEF tag to read-only. This API uses a promise to return the result.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefTag(taginfo).setReadOnly().then(function (errcode) { ndef.setReadOnly()
console.log(JSON.stringify(errcode)) .then((data) => {
}) console.log("ndef setReadOnly data: " + data);
}).catch((err)=> {
console.log("ndef setReadOnly err: " + err);
});
``` ```
### NdefTag.setReadOnly<sup>9+</sup> ### NdefTag.setReadOnly<sup>9+</sup>
setReadOnly(callback: AsyncCallback<number>): void setReadOnly(callback: AsyncCallback\<number>): void
Sets this NDEF tag to read-only. This API uses an asynchronous callback to return the result. Sets this NDEF tag to read-only. This API uses an asynchronous callback to return the result.
...@@ -801,18 +803,21 @@ Sets this NDEF tag to read-only. This API uses an asynchronous callback to retur ...@@ -801,18 +803,21 @@ Sets this NDEF tag to read-only. This API uses an asynchronous callback to retur
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefTag(taginfo).setReadOnly(function (error, errcode) { ndef.setReadOnly((err, data)=> {
console.log(JSON.stringify(error)) if (err) {
console.log('has: ' + errcode) console.log("ndef setReadOnly err: " + err);
}) } else {
console.log("ndef setReadOnly data: " + data);
}
});
``` ```
### NdefTag.getNdefTagTypeString<sup>9+</sup> ### NdefTag.getNdefTagTypeString<sup>9+</sup>
getNdefTagTypeString(type: [NfcForumType](#nfcforumtype9)): string getNdefTagTypeString(type: [NfcForumType](js-apis-nfcTag.md#nfcforumtype9)): string
Converts an NFC Forum Type to a byte array defined in the NFC Forum. Converts an NFC Forum Type tag to a byte array defined in the NFC Forum.
**Required permissions**: ohos.permission.NFC_TAG **Required permissions**: ohos.permission.NFC_TAG
...@@ -822,7 +827,7 @@ Converts an NFC Forum Type to a byte array defined in the NFC Forum. ...@@ -822,7 +827,7 @@ Converts an NFC Forum Type to a byte array defined in the NFC Forum.
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| type | [NfcForumType](#nfcforumtype9) | Yes | NFC Forum Type.| | type | [NfcForumType](js-apis-nfcTag.md#nfcforumtype9) | Yes | NDEF tag type. It can be NFC FORUM type 1, 2, 3, or 4.|
**Return value** **Return value**
...@@ -835,21 +840,12 @@ Converts an NFC Forum Type to a byte array defined in the NFC Forum. ...@@ -835,21 +840,12 @@ Converts an NFC Forum Type to a byte array defined in the NFC Forum.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
let ndefTypeString= tag.NdefTag(taginfo).getNdefTagTypeString(type); let ndefTypeString = ndef.getNdefTagTypeString(tag.NFC_FORUM_TYPE_1);
console.log("ndef ndefTypeString: " + ndefTypeString);
``` ```
## NfcForumType<sup>9+</sup> ## MifareClassicTag<sup>9+</sup>
| **Name**| **Type**| **Description**|
| -------- | -------- | -------- |
| NFC_FORUM_TYPE_1 | 1 | NFC Forum Type 1.|
| NFC_FORUM_TYPE_2 | 2 | NFC Forum Type 2.|
| NFC_FORUM_TYPE_3 | 3 | NFC Forum Type 3.|
| NFC_FORUM_TYPE_4 | 4 | NFC Forum Type 4.|
| MIFARE_CLASSIC | 101 | MIFARE Classic.|
## MifareClassicTag <sup>9+</sup>
Provides access to MIFARE Classic properties and I/O operations. This class inherits from **TagSession**. Provides access to MIFARE Classic properties and I/O operations. This class inherits from **TagSession**.
...@@ -886,15 +882,20 @@ Authenticates a sector using the key. The sector can be accessed only after the ...@@ -886,15 +882,20 @@ Authenticates a sector using the key. The sector can be accessed only after the
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).authenticateSector(sectorIndex, key).then(function (isKeyA) { let sectorIndex = 1; // change it to be correct index.
console.log(JSON.stringify(isKeyA)) let key = [0x04, 0x05, ....]; // change it to be correct key.
}) mifareClassic.authenticateSector(sectorIndex, key, true);
.then((data) => {
console.log("mifareClassic authenticateSector data: " + data);
}).catch((err)=> {
console.log("mifareClassic authenticateSector err: " + err);
});
``` ```
### MifareClassicTag.authenticateSector<sup>9+</sup> ### MifareClassicTag.authenticateSector<sup>9+</sup>
authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean, callback: AsyncCallback<boolean>): void authenticateSector(sectorIndex: number, key: number[], isKeyA: boolean, callback: AsyncCallback\<boolean>): void
Authenticates a sector using the key. The sector can be accessed only after the authentication is successful. This API uses an asynchronous callback to return the result. Authenticates a sector using the key. The sector can be accessed only after the authentication is successful. This API uses an asynchronous callback to return the result.
...@@ -916,16 +917,21 @@ Authenticates a sector using the key. The sector can be accessed only after the ...@@ -916,16 +917,21 @@ Authenticates a sector using the key. The sector can be accessed only after the
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).authenticateSector(sectorIndex, key, function (error, has) { let sectorIndex = 1; // change it to be correct index.
console.log(JSON.stringify(error)) let key = [0x04, 0x05, ....]; // change it to be correct key.
console.log('has: ' + has) mifareClassic.authenticateSector(sectorIndex, key, true, (err, data)=> {
}) if (err) {
console.log("mifareClassic authenticateSector err: " + err);
} else {
console.log("mifareClassic authenticateSector data: " + data);
}
});
``` ```
### MifareClassicTag.readSingleBlock<sup>9+</sup> ### MifareClassicTag.readSingleBlock<sup>9+</sup>
readSingleBlock(blockIndex: number): Promise\<string> readSingleBlock(blockIndex: number): Promise\<number[]>
Reads a block (16 bytes) on the tag. This API uses a promise to return the result. Reads a block (16 bytes) on the tag. This API uses a promise to return the result.
...@@ -943,23 +949,27 @@ Reads a block (16 bytes) on the tag. This API uses a promise to return the resul ...@@ -943,23 +949,27 @@ Reads a block (16 bytes) on the tag. This API uses a promise to return the resul
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| Promise\<string> | Promise used to return the block data read.| | Promise\<number[]> | Promise used to return the block data read.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
let data = "xxx"; // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
// tagInfo is an object given by the NFC service when a tag is dispatched. let blockIndex = 1; // change it to be correct index.
tag.MifareClassicTag(taginfo).readSingleBlock(blockIndex).then(function (data){ mifareClassic.readSingleBlock(blockIndex, (err, data)=> {
console.log('data: ' + data) if (err) {
}) console.log("mifareClassic readSingleBlock err: " + err);
} else {
console.log("mifareClassic readSingleBlock data: " + data);
}
});
``` ```
### MifareClassicTag.readSingleBlock<sup>9+</sup> ### MifareClassicTag.readSingleBlock<sup>9+</sup>
readSingleBlock(blockIndex: number, callback: AsyncCallback\<string>): void readSingleBlock(blockIndex: number, callback: AsyncCallback\<number[]>): void
Reads a block (16 bytes) on the tag. This API uses an asynchronous callback to return the result. Reads a block (16 bytes) on the tag. This API uses an asynchronous callback to return the result.
...@@ -972,24 +982,27 @@ Reads a block (16 bytes) on the tag. This API uses an asynchronous callback to r ...@@ -972,24 +982,27 @@ Reads a block (16 bytes) on the tag. This API uses an asynchronous callback to r
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | Yes | Index of the block to read.| | blockIndex | number | Yes | Index of the block to read.|
| callback | AsyncCallback\<string> | Yes | Callback invoked to return the block read.| | callback | AsyncCallback\<number[]> | Yes | Callback invoked to return the block read.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
let data = "xxx"; // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
// tagInfo is an object given by the NFC service when a tag is dispatched. let blockIndex = 1; // change it to be correct index.
tag.MifareClassicTag(taginfo).readSingleBlock(blockIndex, function (error, data) { mifareClassic.readSingleBlock(blockIndex, (err, data)=> {
console.log(JSON.stringify(error)) if (err) {
console.log('data: ' + data) console.log("mifareClassic readSingleBlock err: " + err);
}) } else {
console.log("mifareClassic readSingleBlock data: " + data);
}
});
``` ```
### MifareClassicTag.writeSingleBlock<sup>9+</sup> ### MifareClassicTag.writeSingleBlock<sup>9+</sup>
writeSingleBlock(blockIndex: number, data: string): Promise\<number> writeSingleBlock(blockIndex: number, data: number[]): Promise\<number>
Writes data to a block on the tag. This API uses a promise to return the result. Writes data to a block on the tag. This API uses a promise to return the result.
...@@ -1002,7 +1015,7 @@ Writes data to a block on the tag. This API uses a promise to return the result. ...@@ -1002,7 +1015,7 @@ Writes data to a block on the tag. This API uses a promise to return the result.
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | Yes | Index of the target block.| | blockIndex | number | Yes | Index of the target block.|
| data | string | Yes | Data to write.| | data | number[] | Yes | Data to write.|
**Return value** **Return value**
...@@ -1015,16 +1028,21 @@ Writes data to a block on the tag. This API uses a promise to return the result. ...@@ -1015,16 +1028,21 @@ Writes data to a block on the tag. This API uses a promise to return the result.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
let data = "xxx"; // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
// tagInfo is an object given by the NFC service when a tag is dispatched. let blockIndex = 1; // change it to be correct index.
tag.MifareClassicTag(taginfo).writeSingleBlock(blockIndex, data).then(function (errcode){ let rawData = [0x0a, 0x14, ...]; // change it to be correct data.
console.log(JSON.stringify(errcode)) mifareClassic.writeSingleBlock(blockIndex, rawData, (err, data)=> {
}) if (err) {
console.log("mifareClassic writeSingleBlock err: " + err);
} else {
console.log("mifareClassic writeSingleBlock data: " + data);
}
});
``` ```
### MifareClassicTag.writeSingleBlock<sup>9+</sup> ### MifareClassicTag.writeSingleBlock<sup>9+</sup>
writeSingleBlock(blockIndex: number, data: string, callback: AsyncCallback\<number>): void writeSingleBlock(blockIndex: number, data: number[], callback: AsyncCallback\<number>): void
Writes data to a block on the tag. This API uses an asynchronous callback to return the result. Writes data to a block on the tag. This API uses an asynchronous callback to return the result.
...@@ -1037,7 +1055,7 @@ Writes data to a block on the tag. This API uses an asynchronous callback to ret ...@@ -1037,7 +1055,7 @@ Writes data to a block on the tag. This API uses an asynchronous callback to ret
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| blockIndex | number | Yes | Index of the target block.| | blockIndex | number | Yes | Index of the target block.|
| data | string | Yes | Data to write.| | data | number[] | Yes | Data to write.|
| callback | AsyncCallback\<number> | Yes | Callback invoked to return the result.| | callback | AsyncCallback\<number> | Yes | Callback invoked to return the result.|
**Example** **Example**
...@@ -1045,12 +1063,16 @@ Writes data to a block on the tag. This API uses an asynchronous callback to ret ...@@ -1045,12 +1063,16 @@ Writes data to a block on the tag. This API uses an asynchronous callback to ret
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
let data = "xxx"; // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
// tagInfo is an object given by the NFC service when a tag is dispatched. let blockIndex = 1; // change it to be correct index.
tag.MifareClassicTag(taginfo).writeSingleBlock(blockIndex, data, function (error, errcode) { let rawData = [0x0a, 0x14, ...]; // change it to be correct data.
console.log(JSON.stringify(error)) mifareClassic.writeSingleBlock(blockIndex, rawData, (err, data)=> {
console.log(JSON.stringify(errcode)) if (err) {
}) console.log("mifareClassic writeSingleBlock err: " + err);
} else {
console.log("mifareClassic writeSingleBlock data: " + data);
}
});
``` ```
### MifareClassicTag.incrementBlock<sup>9+</sup> ### MifareClassicTag.incrementBlock<sup>9+</sup>
...@@ -1081,10 +1103,16 @@ Increments a block with data. This API uses a promise to return the result. ...@@ -1081,10 +1103,16 @@ Increments a block with data. This API uses a promise to return the result.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).incrementBlock(blockIndex, value).then(function (errcode){ let blockIndex = 1; // change it to be correct index.
console.log(JSON.stringify(errcode)) let value = 0x20; // change it to be correct data.
}) mifareClassic.incrementBlock(blockIndex, value, (err, data)=> {
if (err) {
console.log("mifareClassic incrementBlock err: " + err);
} else {
console.log("mifareClassic incrementBlock data: " + data);
}
});
``` ```
### MifareClassicTag.incrementBlock<sup>9+</sup> ### MifareClassicTag.incrementBlock<sup>9+</sup>
...@@ -1110,11 +1138,16 @@ Increments a block with data. This API uses an asynchronous callback to return t ...@@ -1110,11 +1138,16 @@ Increments a block with data. This API uses an asynchronous callback to return t
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).incrementBlock(blockIndex, value, function (error, errcode) { let blockIndex = 1; // change it to be correct index.
console.log(JSON.stringify(error)) let value = 0x20; // change it to be correct data.
console.log(JSON.stringify(errcode)) mifareClassic.incrementBlock(blockIndex, value, (err, data)=> {
}) if (err) {
console.log("mifareClassic incrementBlock err: " + err);
} else {
console.log("mifareClassic incrementBlock data: " + data);
}
});
``` ```
### MifareClassicTag.decrementBlock<sup>9+</sup> ### MifareClassicTag.decrementBlock<sup>9+</sup>
...@@ -1145,10 +1178,16 @@ Decrements a block with data. This API uses a promise to return the result. ...@@ -1145,10 +1178,16 @@ Decrements a block with data. This API uses a promise to return the result.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).decrementBlock(blockIndex, value).then(function (errcode){ let blockIndex = 1; // change it to be correct index.
console.log(JSON.stringify(errcode)) let value = 0x20; // change it to be correct data.
}) mifareClassic.decrementBlock(blockIndex, value, (err, data)=> {
if (err) {
console.log("mifareClassic decrementBlock err: " + err);
} else {
console.log("mifareClassic decrementBlock data: " + data);
}
});
``` ```
### MifareClassicTag.decrementBlock<sup>9+</sup> ### MifareClassicTag.decrementBlock<sup>9+</sup>
...@@ -1174,11 +1213,16 @@ Decrements a block with data. This API uses an asynchronous callback to return t ...@@ -1174,11 +1213,16 @@ Decrements a block with data. This API uses an asynchronous callback to return t
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).decrementBlock(blockIndex, value, function (error, errcode) { let blockIndex = 1; // change it to be correct index.
console.log(JSON.stringify(error)) let value = 0x20; // change it to be correct data.
console.log(JSON.stringify(errcode)) mifareClassic.decrementBlock(blockIndex, value, (err, data)=> {
}) if (err) {
console.log("mifareClassic decrementBlock err: " + err);
} else {
console.log("mifareClassic decrementBlock data: " + data);
}
});
``` ```
### MifareClassicTag.transferToBlock<sup>9+</sup> ### MifareClassicTag.transferToBlock<sup>9+</sup>
...@@ -1209,13 +1253,18 @@ Copies data from the register to a block. This API uses a promise to return the ...@@ -1209,13 +1253,18 @@ Copies data from the register to a block. This API uses a promise to return the
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).transferToBlock(blockIndex).then(function (errcode){ let blockIndex = 1; // change it to be correct index.
console.log(JSON.stringify(errcode)) mifareClassic.transferToBlock(blockIndex, (err, data)=> {
}) if (err) {
console.log("mifareClassic transferToBlock err: " + err);
} else {
console.log("mifareClassic transferToBlock data: " + data);
}
});
``` ```
### MifareClassicTag.transferToBlock ### MifareClassicTag.transferToBlock<sup>9+</sup>
transferToBlock(blockIndex: number, callback: AsyncCallback\<number>): void transferToBlock(blockIndex: number, callback: AsyncCallback\<number>): void
...@@ -1237,11 +1286,15 @@ Copies data from the register to a block. This API uses an asynchronous callback ...@@ -1237,11 +1286,15 @@ Copies data from the register to a block. This API uses an asynchronous callback
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).transferToBlock(blockIndex, function (error, errcode) { let blockIndex = 1; // change it to be correct index.
console.log(JSON.stringify(error)) mifareClassic.transferToBlock(blockIndex, (err, data)=> {
console.log(JSON.stringify(errcode)) if (err) {
}) console.log("mifareClassic transferToBlock err: " + err);
} else {
console.log("mifareClassic transferToBlock data: " + data);
}
});
``` ```
### MifareClassicTag.restoreFromBlock<sup>9+</sup> ### MifareClassicTag.restoreFromBlock<sup>9+</sup>
...@@ -1272,10 +1325,14 @@ Copies data from a block to the register. This API uses a promise to return the ...@@ -1272,10 +1325,14 @@ Copies data from a block to the register. This API uses a promise to return the
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).restoreFromBlock(blockIndex).then(function (errcode){ let blockIndex = 1; // change it to be correct index.
console.log(JSON.stringify(errcode)) mifareClassic.restoreFromBlock(blockIndex)
}) .then((data) => {
console.log("mifareClassic restoreFromBlock data: " + data);
}).catch((err)=> {
console.log("mifareClassic isExtendrestoreFromBlockedApduSupported err: " + err);
});
``` ```
### MifareClassicTag.restoreFromBlock<sup>9+</sup> ### MifareClassicTag.restoreFromBlock<sup>9+</sup>
...@@ -1300,11 +1357,15 @@ Copies data from a block to the register. This API uses an asynchronous callback ...@@ -1300,11 +1357,15 @@ Copies data from a block to the register. This API uses an asynchronous callback
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
tag.MifareClassicTag(taginfo).restoreFromBlock(blockIndex, function (error, errcode) { let blockIndex = 1; // change it to be correct index.
console.log(JSON.stringify(error)) mifareClassic.restoreFromBlock(blockIndex, (err, data)=> {
console.log(JSON.stringify(errcode)) if (err) {
}) console.log("mifareClassic restoreFromBlock err: " + err);
} else {
console.log("mifareClassic restoreFromBlock data: " + data);
}
});
``` ```
### MifareClassicTag.getSectorCount<sup>9+</sup> ### MifareClassicTag.getSectorCount<sup>9+</sup>
...@@ -1328,8 +1389,9 @@ Obtains the number of sectors in this MIFARE Classic tag. ...@@ -1328,8 +1389,9 @@ Obtains the number of sectors in this MIFARE Classic tag.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
let setorCount = tag.MifareClassicTag(taginfo).getSectorCount(); let sectorCount = mifareClassic.getSectorCount();
console.log("mifareClassic sectorCount: " + sectorCount);
``` ```
### MifareClassicTag.getBlockCountInSector<sup>9+</sup> ### MifareClassicTag.getBlockCountInSector<sup>9+</sup>
...@@ -1359,13 +1421,14 @@ Obtains the number of blocks in a sector. ...@@ -1359,13 +1421,14 @@ Obtains the number of blocks in a sector.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
let blockNumber = tag.MifareClassicTag(taginfo).getBlockCountInSector(sectorIndex); let blockCountInSector = mifareClassic.getBlockCountInSector();
console.log("mifareClassic blockCountInSector: " + blockCountInSector);
``` ```
### MifareClassicTag.getType<sup>9+</sup> ### MifareClassicTag.getType<sup>9+</sup>
getType(): [MifareClassicType](#mifareclassictype9) getType(): [MifareClassicType](js-apis-nfcTag.md#mifareclassictype9)
Obtains the type of this MIFARE Classic tag. Obtains the type of this MIFARE Classic tag.
...@@ -1377,22 +1440,23 @@ Obtains the type of this MIFARE Classic tag. ...@@ -1377,22 +1440,23 @@ Obtains the type of this MIFARE Classic tag.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| [MifareClassicType](#mifareclassictype9) | Type of the MIFARE Classic tag obtained.| | [MifareClassicType](js-apis-nfcTag.md#mifareclassictype9) | Type of the MIFARE Classic tag obtained.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
let type = tag.MifareClassicTag(taginfo).getType(); let getType = mifareClassic.getType();
console.log("mifareClassic getType: " + getType);
``` ```
### MifareClassicTag.getTagSize<sup>9+</sup> ### MifareClassicTag.getTagSize<sup>9+</sup>
getTagSize(): number getTagSize(): number
Obtains the tag size (in bytes). For details, see [MifareTagSize](#mifaretagsize9). Obtains the tag size (in bytes). For details, see [MifareClassicSize](js-apis-nfcTag.md#mifareclassicsize9).
**Required permissions**: ohos.permission.NFC_TAG **Required permissions**: ohos.permission.NFC_TAG
...@@ -1402,35 +1466,18 @@ Obtains the tag size (in bytes). For details, see [MifareTagSize](#mifaretagsize ...@@ -1402,35 +1466,18 @@ Obtains the tag size (in bytes). For details, see [MifareTagSize](#mifaretagsize
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| number | Tag size obtained, in bytes. For details, see [MifareTagSize](#mifaretagsize9).| | number | Tag size obtained, in bytes. For details, see [MifareClassicSize](js-apis-nfcTag.md#mifareclassicsize9).|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
let size = tag.MifareClassicTag(taginfo).getTagSize(); let tagSize = mifareClassic.getTagSize();
console.log("mifareClassic tagSize: " + tagSize);
``` ```
## MifareClassicType<sup>9+</sup>
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| TYPE_UNKNOWN | -1 | Unknown type.|
| TYPE_CLASSIC | 0 | MIFARE Classic.|
| TYPE_PLUS | 1 | MIFARE Plus.|
| TYPE_PRO | 2 | MIFARE Pro.|
## MifareTagSize<sup>9+</sup>
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| MC_SIZE_MINI | 320 | Each tag has 5 sectors, and each sector has 4 blocks.|
| MC_SIZE_1K | 1024 | Each tag has 16 sectors, and each sector has 4 blocks.|
| MC_SIZE_2K | 2048 | Each tag has 32 sectors, and each sector has 4 blocks.|
| MC_SIZE_4K | 4096 | Each tag has 40 sectors, and each sector has 4 blocks.|
### MifareClassicTag.isEmulatedTag<sup>9+</sup> ### MifareClassicTag.isEmulatedTag<sup>9+</sup>
isEmulatedTag(): boolean isEmulatedTag(): boolean
...@@ -1452,8 +1499,9 @@ Checks whether the tag is an emulated tag. ...@@ -1452,8 +1499,9 @@ Checks whether the tag is an emulated tag.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
let isEmulated = tag.MifareClassicTag(taginfo).isEmulatedTag(); let isEmulatedTag = mifareClassic.isEmulatedTag();
console.log("mifareClassic isEmulatedTag: " + isEmulatedTag);
``` ```
### MifareClassicTag.getBlockIndex<sup>9+</sup> ### MifareClassicTag.getBlockIndex<sup>9+</sup>
...@@ -1483,8 +1531,10 @@ Obtains the first block of a sector. ...@@ -1483,8 +1531,10 @@ Obtains the first block of a sector.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
let index = tag.MifareClassicTag(taginfo).getBlockIndex(sectorIndex); let sectorIndex = 1; // change it to be correct index.
let blockIndex = mifareClassic.getBlockIndex(sectorIndex);
console.log("mifareClassic blockIndex: " + blockIndex);
``` ```
### MifareClassicTag.getSectorIndex<sup>9+</sup> ### MifareClassicTag.getSectorIndex<sup>9+</sup>
...@@ -1514,8 +1564,10 @@ Obtains the index of a sector that contains the specified block. ...@@ -1514,8 +1564,10 @@ Obtains the index of a sector that contains the specified block.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareClassic' correctly.
let index = tag.MifareClassicTag(taginfo).getSectorIndex(blockIndex); let blockIndex = 1; // change it to be correct index.
let sectorIndex = mifareClassic.getSectorIndex(blockIndex);
console.log("mifareClassic sectorIndex: " + sectorIndex);
``` ```
## MifareUltralightTag<sup>9+</sup> ## MifareUltralightTag<sup>9+</sup>
...@@ -1528,7 +1580,7 @@ The following describes the unique interfaces of **MifareUltralightTag**. ...@@ -1528,7 +1580,7 @@ The following describes the unique interfaces of **MifareUltralightTag**.
### MifareUltralightTag.readMultiplePages<sup>9+</sup> ### MifareUltralightTag.readMultiplePages<sup>9+</sup>
readMultiplePages(pageIndex: number): Promise\<string> readMultiplePages(pageIndex: number): Promise\<number[]>
Reads multiple pages (4 bytes per page). This API uses a promise to return the result. Reads multiple pages (4 bytes per page). This API uses a promise to return the result.
...@@ -1546,7 +1598,7 @@ Reads multiple pages (4 bytes per page). This API uses a promise to return the r ...@@ -1546,7 +1598,7 @@ Reads multiple pages (4 bytes per page). This API uses a promise to return the r
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| Promise\<string> | Promise used to return the data read.| | Promise\<number[]> | Promise used to return the data read.|
**Example** **Example**
...@@ -1554,15 +1606,19 @@ Reads multiple pages (4 bytes per page). This API uses a promise to return the r ...@@ -1554,15 +1606,19 @@ Reads multiple pages (4 bytes per page). This API uses a promise to return the r
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareUltralight' correctly.
tag.MifareUltralightTag(taginfo).readMultiplePages(pageIndex).then(function (data){ let pageIndex = 1; // change it to be correct index.
console.log("data: " + data) mifareUltralight.readMultiplePages(pageIndex)
}) .then((data) => {
console.log("mifareUltralight readMultiplePages data: " + data);
}).catch((err)=> {
console.log("mifareUltralight readMultiplePages err: " + err);
});
``` ```
### MifareUltralightTag.readMultiplePages<sup>9+</sup> ### MifareUltralightTag.readMultiplePages<sup>9+</sup>
readMultiplePages(pageIndex: number, callback: AsyncCallback\<string>): void readMultiplePages(pageIndex: number, callback: AsyncCallback\<number[]>): void
Reads multiple pages (4 bytes per page). This API uses an asynchronous callback to return the result. Reads multiple pages (4 bytes per page). This API uses an asynchronous callback to return the result.
...@@ -1575,23 +1631,27 @@ Reads multiple pages (4 bytes per page). This API uses an asynchronous callback ...@@ -1575,23 +1631,27 @@ Reads multiple pages (4 bytes per page). This API uses an asynchronous callback
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| pageIndex | number | Yes | Indexes of the pages to read.| | pageIndex | number | Yes | Indexes of the pages to read.|
| callback | AsyncCallback\<string> | Yes | Callback invoked to return the data read.| | callback | AsyncCallback\<number[]> | Yes | Callback invoked to return the result.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareUltralight' correctly.
tag.MifareUltralightTag(taginfo).readMultiplePages(pageIndex, function (error, data) { let pageIndex = 1; // change it to be correct index.
console.log(JSON.stringify(error)) mifareUltralight.readMultiplePages(pageIndex, (err, data)=> {
console.log(JSON.stringify(data)) if (err) {
}) console.log("mifareUltralight readMultiplePages err: " + err);
} else {
console.log("mifareUltralight readMultiplePages data: " + data);
}
});
``` ```
### MifareUltralightTag.writeSinglePages<sup>9+</sup> ### MifareUltralightTag.writeSinglePages<sup>9+</sup>
writeSinglePages(pageIndex: number, data: string): Promise\<number> writeSinglePages(pageIndex: number, data: number[]): Promise\<number>
Writes a page of data. This API uses a promise to return the result. Writes a page of data. This API uses a promise to return the result.
...@@ -1604,7 +1664,7 @@ Writes a page of data. This API uses a promise to return the result. ...@@ -1604,7 +1664,7 @@ Writes a page of data. This API uses a promise to return the result.
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| pageIndex | number | Yes | Index of the page.| | pageIndex | number | Yes | Index of the page.|
| data | string | Yes | Data to write.| | data | number[] | Yes | Data to write.|
**Return value** **Return value**
...@@ -1617,15 +1677,20 @@ Writes a page of data. This API uses a promise to return the result. ...@@ -1617,15 +1677,20 @@ Writes a page of data. This API uses a promise to return the result.
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareUltralight' correctly.
tag.MifareUltralightTag(taginfo).writeSinglePages(pageIndex, data).then(function (errcode){ let pageIndex = 1; // change it to be correct index.
console.log(JSON.stringify(errcode)) let data = [0x01, 0x02, ...]; // change it to be correct raw data.
}) mifareUltralight.writeSinglePages(pageIndex, data)
.then((data) => {
console.log("mifareUltralight writeSinglePages data: " + data);
}).catch((err)=> {
console.log("mifareUltralight writeSinglePages err: " + err);
});
``` ```
### MifareUltralightTag.writeSinglePages<sup>9+</sup> ### MifareUltralightTag.writeSinglePages<sup>9+</sup>
writeSinglePages(pageIndex: number, data: string, callback: AsyncCallback\<number>): void writeSinglePages(pageIndex: number, data: number[], callback: AsyncCallback\<number>): void
Writes a page of data. This API uses an asynchronous callback to return the result. Writes a page of data. This API uses an asynchronous callback to return the result.
...@@ -1638,7 +1703,7 @@ Writes a page of data. This API uses an asynchronous callback to return the resu ...@@ -1638,7 +1703,7 @@ Writes a page of data. This API uses an asynchronous callback to return the resu
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | ------------------------ | | -------- | ----------------------- | ---- | ------------------------ |
| pageIndex | number | Yes | Index of the page.| | pageIndex | number | Yes | Index of the page.|
| data | string | Yes | Data to write.| | data | number[] | Yes | Data to write.|
| callback|AsyncCallback\<number> |Yes| Callback invoked to return the result.| | callback|AsyncCallback\<number> |Yes| Callback invoked to return the result.|
**Example** **Example**
...@@ -1646,18 +1711,23 @@ Writes a page of data. This API uses an asynchronous callback to return the resu ...@@ -1646,18 +1711,23 @@ Writes a page of data. This API uses an asynchronous callback to return the resu
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareUltralight' correctly.
tag.MifareUltralightTag(taginfo).writeSinglePages(pageIndex, data, function (error, errcode) { let pageIndex = 1; // change it to be correct index.
console.log(JSON.stringify(error)) let data = [0x01, 0x02, ...]; // change it to be correct raw data.
console.log(JSON.stringify(errcode)) mifareUltralight.writeSinglePages(pageIndex, data, (err, data)=> {
}) if (err) {
console.log("mifareUltralight writeSinglePages err: " + err);
} else {
console.log("mifareUltralight writeSinglePages data: " + data);
}
});
``` ```
### MifareUltralightTag.getType<sup>9+</sup> ### MifareUltralightTag.getType<sup>9+</sup>
getType(): MifareUltralightType getType(): MifareUltralightType
Obtains the MIFARE Ultralight tag type, in bytes. Obtains the MIFARE Ultralight tag type, in bytes. For details, see [MifareUltralightType](js-apis-nfcTag.md#mifareultralighttype9).
**Required permissions**: ohos.permission.NFC_TAG **Required permissions**: ohos.permission.NFC_TAG
...@@ -1667,25 +1737,18 @@ Obtains the MIFARE Ultralight tag type, in bytes. ...@@ -1667,25 +1737,18 @@ Obtains the MIFARE Ultralight tag type, in bytes.
| **Type**| **Description** | | **Type**| **Description** |
| ------------------ | --------------------------| | ------------------ | --------------------------|
| MifareUltralightType | Type of the MIFARE Ultralight tag. For details, see [MifareUltralightType](#mifareultralighttype9).| | MifareUltralightType | MIFARE Ultralight tag type obtained. For details, see [MifareUltralightType](js-apis-nfcTag.md#mifareultralighttype9).|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'mifareUltralight' correctly.
let type = tag.MifareUltralightType(taginfo).getType(); let getType = mifareClassic.getType();
console.log("mifareUltralight getType: " + getType);
``` ```
### MifareUltralightType<sup>9+</sup>
| **Name**| **Value**| **Description**|
| -------- | -------- | -------- |
| TYPE_UNKOWN | -1 | Unknown type.|
| TYPE_ULTRALIGHT | 1 | MIFARE Ultralight.|
| TYPE_ULTRALIGHT_C | 2 | MIFARE Ultralight C.|
## NdefFormatableTag<sup>9+</sup> ## NdefFormatableTag<sup>9+</sup>
Provides APIs for operating NDEF formattable tags. This class inherits from **TagSession**. Provides APIs for operating NDEF formattable tags. This class inherits from **TagSession**.
...@@ -1721,10 +1784,18 @@ Formats this tag as an NDEF tag, and writes an NDEF message to the tag. This API ...@@ -1721,10 +1784,18 @@ Formats this tag as an NDEF tag, and writes an NDEF message to the tag. This API
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefFormatableTag(taginfo).format(message).then(function (errcode){ let data = [0x01, 0x02, ...]; // change it to be correct raw data.
console.log(JSON.stringify(errcode)) let ndefmessage = ndef.createNdefMessage(data);
})
// Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndefFormatable' correctly.
ndefFormatable.format(ndefmessage, (err, data)=> {
if (err) {
console.log("ndefFormatable format err: " + err);
} else {
console.log("ndefFormatable format data: " + data);
}
});
``` ```
### NdefFormatableTag.format<sup>9+</sup> ### NdefFormatableTag.format<sup>9+</sup>
...@@ -1741,19 +1812,32 @@ Formats this tag as an NDEF tag, and writes an NDEF message to the tag. This API ...@@ -1741,19 +1812,32 @@ Formats this tag as an NDEF tag, and writes an NDEF message to the tag. This API
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| message | [NdefMessage](#ndefmessage9) | Yes | NDEF message to write when the formatting is successful. If this parameter is **null**, the tag is formatted only.| | message | [NdefMessage](#ndefmessage9) | Yes | NDEF message to write when the formatting is successful. If this parameter is **null**, the tag is formatted only (no data will be written).|
| callback | AsyncCallback\<number> |Yes|Callback invoked to return the result.|
**Return value**
| **Type**| **Description** |
| ------------------ | --------------------------|
| callback: AsyncCallback\<number> | Callback invoked to return the result.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefFormatableTag(taginfo).format(message, function (error, errcode) { let data = [0x01, 0x02, ...]; // change it to be correct raw data.
console.log(JSON.stringify(error)) let ndefmessage = ndef.createNdefMessage(data);
console.log(JSON.stringify(errcode))
}) // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndefFormatable' correctly.
ndefFormatable.format(ndefmessage, (err, data)=> {
if (err) {
console.log("ndefFormatable format err: " + err);
} else {
console.log("ndefFormatable format data: " + data);
}
});
``` ```
### NdefFormatableTag.formatReadOnly<sup>9+</sup> ### NdefFormatableTag.formatReadOnly<sup>9+</sup>
...@@ -1783,10 +1867,18 @@ Formats this tag as an NDEF tag, writes an NDEF message to the NDEF tag, and the ...@@ -1783,10 +1867,18 @@ Formats this tag as an NDEF tag, writes an NDEF message to the NDEF tag, and the
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefFormatableTag(taginfo).formatReadOnly(message).then(function (errcode){ let data = [0x01, 0x02, ...]; // change it to be correct raw data.
console.log(JSON.stringify(errcode)) let ndefmessage = ndef.createNdefMessage(data);
})
// Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndefFormatable' correctly.
ndefFormatable.formatReadOnly(ndefmessage, (err, data)=> {
if (err) {
console.log("ndefFormatable formatReadOnly err: " + err);
} else {
console.log("ndefFormatable formatReadOnly data: " + data);
}
});
``` ```
### NdefFormatableTag.formatReadOnly<sup>9+</sup> ### NdefFormatableTag.formatReadOnly<sup>9+</sup>
...@@ -1803,17 +1895,30 @@ Formats this tag as an NDEF tag, writes an NDEF message to the NDEF tag, and the ...@@ -1803,17 +1895,30 @@ Formats this tag as an NDEF tag, writes an NDEF message to the NDEF tag, and the
| Name | Type | Mandatory| Description | | Name | Type | Mandatory| Description |
| -------- | ----------------------- | ---- | -------------------------------------- | | -------- | ----------------------- | ---- | -------------------------------------- |
| message | [NdefMessage](#ndefmessage9) | Yes | NDEF message to write when the formatting is successful. If this parameter is **null**, the tag is formatted only.| | message | [NdefMessage](#ndefmessage9) | Yes | NDEF message to write when the formatting is successful. If this parameter is **null**, the tag is formatted only (no data will be written).|
| callback | AsyncCallback\<number> |Yes|Callback invoked to return the result.|
**Return value**
| **Type**| **Description** |
| ------------------ | --------------------------|
| callback: AsyncCallback\<number> | Callback invoked to return the result.|
**Example** **Example**
```js ```js
import tag from '@ohos.nfc.tag'; import tag from '@ohos.nfc.tag';
// tagInfo is an object given by the NFC service when a tag is dispatched. // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndef' correctly.
tag.NdefFormatableTag(taginfo).formatReadOnly(message, function (error, errcode) { let data = [0x01, 0x02, ...]; // change it to be correct raw data.
console.log(JSON.stringify(error)) let ndefmessage = ndef.createNdefMessage(data);
console.log(JSON.stringify(errcode))
}) // Check whether 'tag.TagInfo' at 'js-apis-nfcTag' has obtained the 'ndefFormatable' correctly.
ndefFormatable.formatReadOnly(ndefmessage, (err, data)=> {
if (err) {
console.log("ndefFormatable formatReadOnly err: " + err);
} else {
console.log("ndefFormatable formatReadOnly data: " + data);
}
});
``` ```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册