tagSession (Standard NFC Tag Session)
The tagSession module provides common APIs for establishing connections and transferring data.
NOTE
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.
Modules to Import
import tag from '@ohos.nfc.tag';
tagSession
Provides common APIs for establishing connections and transferring data. tagSession is the base class of all NFC tag technologies.
A child class instance is required to access the following interfaces. You can use getXXX() to obtain a child class instance.
The specific API varies with the NFC tag technology in use. For details, see NFC Tags.
tagSession.getTagInfo(deprecated)
getTagInfo(): tag.TagInfo
Obtains the tagInfo object provided by the NFC service when the tag is dispatched.
NOTE This API is supported since API version 7 and deprecated since API version 9. Use tag.getTagInfo instead.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Return value
Type | Description |
---|---|
TagInfo | Taginfo object obtained. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
let tagInfo : TagInfo = tag.getIsoDep(tagInfo).getTagInfo();
console.log("tag tagInfo: " + tagInfo);
tagSession.connectTag(deprecated)
connectTag(): boolean;
Connects to this tag. Call this API to set up a connection before reading data from or writing data to a tag.
NOTE This API is supported since API version 7 and deprecated since API version 9. Use tagSession.connect instead.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Return value
Type | Description |
---|---|
boolean | Returns true if the operation is successful; returns false otherwise. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
let connectStatus : boolean = tag.getIsoDep(tagInfo).connectTag();
console.log("connectStatus: " + connectStatus);
tagSession.connect9+
connect(): void;
Connects to this tag. Call this API to set up a connection before reading data from or writing data to a tag.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Error codes
For details about the error codes, see NFC Error Codes.
ID | Error Message |
---|---|
3100201 | Tag running state is abnormal in service. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
try {
tag.getIsoDep(tagInfo).connect();
console.log("tag connect success");
} catch (busiError) {
console.log("tag connect busiError: " + busiError);
}
tagSession.reset()(deprecated)
reset(): void
Resets the connection to this tag.
NOTE This API is supported since API version 7 and deprecated since API version 9. Use tagSession.resetConnection instead.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
tag.getIsoDep(tagInfo).reset();
tagSession.resetConnection()9+
resetConnection(): void
Resets the connection to this tag.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Error codes
For details about the error codes, see NFC Error Codes.
ID | Error Message |
---|---|
3100201 | Tag running state is abnormal in service. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
try {
tag.getIsoDep(tagInfo).resetConnection();
console.log("tag resetConnection success");
} catch (busiError) {
console.log("tag resetConnection busiError: " + busiError);
}
tagSession.isTagConnected(deprecated)
isTagConnected(): boolean
Checks whether the tag is connected.
NOTE This API is supported since API version 7 and deprecated since API version 9. Use tagSession.isConnected instead.
System capability: SystemCapability.Communication.NFC.Tag
Return value
Type | Description |
---|---|
boolean | Returns true if the tag is connected; returns false otherwise. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
let isTagConnected = tag.getIsoDep(tagInfo).isTagConnected();
console.log("isTagConnected: " + isTagConnected);
tagSession.isConnected9+
isConnected(): boolean
Checks whether the tag is connected.
System capability: SystemCapability.Communication.NFC.Tag
Return value
Type | Description |
---|---|
boolean | Returns true if the tag is connected; returns false otherwise. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
try {
let isConnected = tag.getIsoDep(tagInfo).isConnected();
console.log("tag isConnected = " + isConnected);
} catch (busiError) {
console.log("tag isConnected busiError: " + busiError);
}
tagSession.getMaxSendLength(deprecated)
getMaxSendLength(): number
Obtains the maximum length of the data that can be sent to this tag.
NOTE This API is supported since API version 7 and deprecated since API version 9. Use tagSession.getMaxTransmitSize instead.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Return value
Type | Description |
---|---|
number | Maximum data length obtained. The value cannot be a negative number. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
let maxSendLen = tag.getIsoDep(tagInfo).getMaxSendLength();
console.log("tag maxSendLen: " + maxSendLen);
tagSession.getMaxTransmitSize9+
getMaxTransmitSize(): number
Obtains the maximum length of the data that can be sent to this tag.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Return value
Type | Description |
---|---|
number | Maximum data length obtained. The value cannot be a negative number. |
Error codes
For details about the error codes, see NFC Error Codes.
ID | Error Message |
---|---|
3100201 | Tag running state is abnormal in service. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
try {
let maxTransmitSize = tag.getIsoDep(tagInfo).getMaxTransmitSize();
console.log("tag maxTransmitSize = " + maxTransmitSize);
} catch (busiError) {
console.log("tag getMaxTransmitSize busiError: " + busiError);
}
tagSession.getSendDataTimeout(deprecated)
getSendDataTimeout(): number
Obtains the timeout period for sending data to this tag, in milliseconds.
NOTE This API is supported since API version 7 and deprecated since API version 9. Use tagSession.getTimeout instead.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Return value
Type | Description |
---|---|
number | Timeout period obtained, in milliseconds. The value cannot be a negative number. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
let sendDataTimeout = tag.getIsoDep(tagInfo).getSendDataTimeout();
console.log("tag sendDataTimeout: " + sendDataTimeout);
tagSession.getTimeout9+
getTimeout(): number
Obtains the timeout period for sending data to this tag, in milliseconds.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Return value
Type | Description |
---|---|
number | Timeout period obtained, in milliseconds. The value cannot be a negative number. |
Error codes
For details about the error codes, see NFC Error Codes.
ID | Error Message |
---|---|
3100201 | Tag running state is abnormal in service. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
try {
let timeout = tag.getIsoDep(tagInfo).getTimeout();
console.log("tag timeout = " + timeout);
} catch (busiError) {
console.log("tag getTimeout busiError: " + busiError);
}
tagSession.setSendDataTimeout(deprecated)
setSendDataTimeout(timeout: number): boolean
Sets the maximum time allowed for sending data to this tag, in ms.
NOTE This API is supported since API version 7 and deprecated since API version 9. Use tagSession.setTimeout instead.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
timeout | number | Yes | Timeout period to set, in milliseconds. The value cannot be a negative number. |
Return value
Type | Description |
---|---|
boolean | Returns true if the timeout period is set successfully; returns false otherwise. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
let timeoutMs = 700; // Change it as required.
let setStatus = tag.getIsoDep(tagInfo).setSendDataTimeout(timeoutMs);
console.log("tag setSendDataTimeout setStatus: " + setStatus);
tagSession.setTimeout9+
setTimeout(timeout: number): void
Sets the maximum time allowed for sending data to this tag, in ms.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
timeout | number | Yes | Timeout period to set, in milliseconds. The value cannot be a negative number. |
Error codes
For details about the error codes, see NFC Error Codes.
ID | Error Message |
---|---|
3100201 | Tag running state is abnormal in service. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
let timeoutMs = 700; // Change it as required.
try {
tag.getIsoDep(tagInfo).setTimeout(timeoutMs);
console.log("tag setTimeout success");
} catch (busiError) {
console.log("tag setTimeout busiError: " + busiError);
}
tagSession.sendData(deprecated)
sendData(data: number[]): Promise<number[]>
Sends data to this tag. This API uses a promise to return the result.
NOTE This API is supported since API version 7 and deprecated since API version 9. Use tagSession.transmit instead.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
data | number[] | Yes | Data to send. The data consists of hexadecimal numbers ranging from 0x00 to 0xFF. |
Return value
Type | Description |
---|---|
Promise<number[]> | Promise used to return the response from the tag. The response consists of hexadecimal numbers ranging from 0x00 to 0xFF. |
Example
import tag from '@ohos.nfc.tag';
import { BusinessError } from '@ohos.base';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
// Connect to the tag if it is not connected.
if (!tag.getIsoDep(tagInfo).isTagConnected()) {
if (!tag.getIsoDep(tagInfo).connectTag()) {
console.log("tagSession connectTag failed.");
return;
}
}
let cmdData = [0x01, 0x02, 0x03, 0x04]; // Change it as required.
tag.getIsoDep(tagInfo).sendData(cmdData).then((response) => {
console.log("tagSession sendData Promise response: " + response);
}).catch((err : BusinessError)=> {
console.log("tagSession sendData Promise err: " + err);
});
tagSession.sendData(deprecated)
sendData(data: number[], callback: AsyncCallback<number[]>): void
Sends data to this tag. This API uses an asynchronous callback to return the result.
NOTE This parameter is supported since API version 7 and discarded since API version 9. Use tagSession.transmit instead.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
data | number[] | Yes | Data to send. The data consists of hexadecimal numbers ranging from 0x00 to 0xFF. |
callback | AsyncCallback<number[]> | Yes | Callback invoked to return the response from the tag. The response consists of hexadecimal numbers ranging from 0x00 to 0xFF. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
// Connect to the tag if it is not connected.
if (!tag.getIsoDep(tagInfo).isTagConnected()) {
if (!tag.getIsoDep(tagInfo).connectTag()) {
console.log("tagSession connectTag failed.");
return;
}
}
let cmdData = [0x01, 0x02, 0x03, 0x04]; // Change it as required.
tag.getIsoDep(tagInfo).sendData(cmdData, (err, response)=> {
if (err) {
console.log("tagSession sendData AsyncCallback err: " + err);
} else {
console.log("tagSession sendData AsyncCallback response: " + response);
}
});
tagSession.transmit9+
transmit(data: number[]): Promise<number[]>
Transmits data to this tag. This API uses a promise to return the result.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
data | number[] | Yes | Data to transmit. The data consists of hexadecimal numbers ranging from 0x00 to 0xFF. |
Return value
Type | Description |
---|---|
Promise<number[]> | Promise used to return the response from the tag. The response consists of hexadecimal numbers ranging from 0x00 to 0xFF. |
Error codes
For details about the error codes, see NFC Error Codes.
ID | Error Message |
---|---|
3100201 | Tag running state is abnormal in service. |
Example
import tag from '@ohos.nfc.tag';
import { BusinessError } from '@ohos.base';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
// Connect to the tag if it is not connected.
try {
if (!tag.getIsoDep(tagInfo).isConnected()) {
tag.getIsoDep(tagInfo).connect();
}
} catch (busiError) {
console.log("tag connect busiError: " + busiError);
return;
}
let cmdData = [0x01, 0x02, 0x03, 0x04]; // Change it as required.
try {
tag.getIsoDep(tagInfo).transmit(cmdData).then((response) => {
console.log("tagSession transmit Promise response: " + response);
}).catch((err : BusinessError)=> {
console.log("tagSession transmit Promise err: " + err);
});
} catch (busiError) {
console.log("tag transmit busiError: " + busiError);
return;
}
tagSession.transmit9+
transmit(data: number[], callback: AsyncCallback<number[]>): void
Transmits data to this tag. This API uses an asynchronous callback to return the result.
Required permissions: ohos.permission.NFC_TAG
System capability: SystemCapability.Communication.NFC.Tag
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
data | number[] | Yes | Data to transmit. The data consists of hexadecimal numbers ranging from 0x00 to 0xFF. |
callback | AsyncCallback<number[]> | Yes | Callback invoked to return the response from the tag. The response consists of hexadecimal numbers ranging from 0x00 to 0xFF. |
Error codes
For details about the error codes, see NFC Error Codes.
ID | Error Message |
---|---|
3100201 | Tag running state is abnormal in service. |
Example
import tag from '@ohos.nfc.tag';
// tagInfo is an object provided by the NFC service when a tag is dispatched.
// getXXX can be getIsoDep, getNdef, getMifareClassic, or any other getter for NFC tags.
// Connect to the tag if it is not connected.
try {
if (!tag.getIsoDep(tagInfo).isConnected()) {
tag.getIsoDep(tagInfo).connect();
}
} catch (busiError) {
console.log("tag connect busiError: " + busiError);
return;
}
let cmdData = [0x01, 0x02, 0x03, 0x04]; // Change it as required.
try {
tag.getIsoDep(tagInfo).transmit(cmdData, (err, response)=> {
if (err) {
console.log("tagSession transmit AsyncCallback err: " + err);
} else {
console.log("tagSession transmit AsyncCallback response: " + response);
}
});
} catch (busiError) {
console.log("tag transmit busiError: " + busiError);
return;
}