# @ohos.connectedTag (有源标签)
本模块提供有源标签的使用,包括初始化有源标签芯片、读取有源标签内容、写入内容到有源标签等。
> **说明:**
>
> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
## 导入模块
```js
import { connectedTag } from '@kit.ConnectivityKit';
```
## connectedTag.init(deprecated)
init(): boolean
初始化有源标签芯片。
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[initialize](#connectedtaginitialize9)替代。
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.ConnectedTag
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| boolean | true:初始化成功。
false:初始化失败。 |
## connectedTag.initialize9+
initialize(): void
初始化有源标签芯片。
**需要权限:** ohos.permission.NFC_TAG
**系统能力:** SystemCapability.Communication.ConnectedTag
**错误码:**
以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[NFC错误码](errorcode-nfc.md)。
| 错误码ID | 错误信息|
| -------- | -------- |
|201 | Permission denied. |
|801 | Capability not supported. |
|3200101 | Connected NFC tag running state is abnormal in service. |
## connectedTag.uninit(deprecated)
uninit(): boolean
卸载有源标签芯片资源。
> **说明:**
>
> 从API version 8开始支持,从API version 9开始废弃,建议使用[uninitialize](#connectedtaguninitialize9)替代。
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.ConnectedTag
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| boolean | true:卸载操作成功。
false:卸载操作失败。 |
## connectedTag.uninitialize9+
uninitialize(): void
卸载有源标签芯片资源。
**需要权限:** ohos.permission.NFC_TAG
**系统能力:** SystemCapability.Communication.ConnectedTag
**错误码:**
以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[NFC错误码](errorcode-nfc.md)。
| 错误码ID | 错误信息|
| -------- | -------- |
|201 | Permission denied. |
|801 | Capability not supported. |
|3200101 | Connected NFC tag running state is abnormal in service. |
## connectedTag.readNdefTag(deprecated)
readNdefTag(): Promise<string>
读取有源标签内容,使用promise方式作为异步方法。
> **说明:**
>
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[connectedTag.read](#connectedtagread9)替代。
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.ConnectedTag
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| Promise<string> | 返回读取有源标签内容。 |
**示例:**
```js
import { connectedTag } from '@kit.ConnectivityKit';
import { BusinessError } from '@kit.BasicServicesKit';
connectedTag.readNdefTag().then((data) => {
console.log("connectedTag readNdefTag Promise data = " + data);
}).catch((err: BusinessError)=> {
console.error("connectedTag readNdefTag Promise err: " + err);
});
```
## connectedTag.read9+
read(): Promise<number[]>
读取有源标签内容,使用promise方式作为异步方法。
**需要权限:** ohos.permission.NFC_TAG
**系统能力:** SystemCapability.Communication.ConnectedTag
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| Promise<number[]> | 返回读取有源标签内容。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[NFC错误码](errorcode-nfc.md)。
| 错误码ID | 错误信息|
| -------- | -------- |
|201 | Permission denied. |
|801 | Capability not supported. |
|3200101 | Connected NFC tag running state is abnormal in service. |
**示例:**
```js
import { connectedTag } from '@kit.ConnectivityKit';
import { BusinessError } from '@kit.BasicServicesKit';
connectedTag.read().then((data) => {
console.log("connectedTag read Promise data = " + data);
}).catch((err: BusinessError)=> {
console.error("connectedTag read Promise err: " + err);
});
```
## connectedTag.readNdefTag(deprecated)
readNdefTag(callback: AsyncCallback<string>): void
读取有源标签内容,使用AsyncCallback方式作为异步方法。
> **说明:**
>
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[connectedTag.read](#connectedtagread9)替代。
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.ConnectedTag
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<string> | 是 | 读取有源标签内容回调函数。 |
**示例:**
```js
import { connectedTag } from '@kit.ConnectivityKit';
connectedTag.readNdefTag((err, data)=> {
if (err) {
console.error("connectedTag readNdefTag AsyncCallback err: " + err);
} else {
console.log("connectedTag readNdefTag AsyncCallback data: " + data);
}
});
```
## connectedTag.read9+
read(callback: AsyncCallback<number[]>): void
读取有源标签内容,使用AsyncCallback方式作为异步方法。
**需要权限:** ohos.permission.NFC_TAG
**系统能力:** SystemCapability.Communication.ConnectedTag
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| callback | AsyncCallback<number[]> | 是 | 读取有源标签内容回调函数。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[NFC错误码](errorcode-nfc.md)。
| 错误码ID | 错误信息|
| -------- | -------- |
|201 | Permission denied. |
|801 | Capability not supported. |
|3200101 | Connected NFC tag running state is abnormal in service. |
**示例:**
```js
import { connectedTag } from '@kit.ConnectivityKit';
connectedTag.read((err, data)=> {
if (err) {
console.error("connectedTag read AsyncCallback err: " + err);
} else {
console.log("connectedTag read AsyncCallback data: " + data);
}
});
```
## connectedTag.writeNdefTag(deprecated)
writeNdefTag(data: string): Promise<void>
写入内容到有源标签,使用promise方式作为异步方法。
> **说明:**
>
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[connectedTag.write](#connectedtagwrite9)替代。
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.ConnectedTag
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| data | string | 是 | 有源标签内容, 最大长度为1024个字节。 |
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| Promise<void> | 无返回值。 |
**示例:**
```js
import { connectedTag } from '@kit.ConnectivityKit';
import { BusinessError } from '@kit.BasicServicesKit';
let rawData = "010203"; // change it to be correct.
connectedTag.writeNdefTag(rawData).then(() => {
console.log("connectedTag.writeNdefTag Promise success.");
}).catch((err: BusinessError)=> {
console.error("connectedTag.writeNdefTag Promise err: " + err);
});
```
## connectedTag.write9+
write(data: number[]): Promise<void>
写入内容到有源标签,使用promise方式作为异步方法。
**需要权限:** ohos.permission.NFC_TAG
**系统能力:** SystemCapability.Communication.ConnectedTag
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| data | number[] | 是 | 有源标签内容, 由十六进制数字组成。范围:0x00至0xFF。 |
**返回值:**
| **类型** | **说明** |
| -------- | -------- |
| Promise<void> | 无返回值。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[NFC错误码](errorcode-nfc.md)。
| 错误码ID | 错误信息|
| -------- | -------- |
|201 | Permission denied. |
|401 | The parameter check failed. Possible causes:
1. Mandatory parameters are left unspecified.
2. Incorrect parameters types.
3. Parameter verification failed. |
|801 | Capability not supported. |
|3200101 | Connected NFC tag running state is abnormal in service. |
**示例:**
```js
import { connectedTag } from '@kit.ConnectivityKit';
import { BusinessError } from '@kit.BasicServicesKit';
let rawData = [0x01, 0x02, 0x03]; // change it to be correct.
connectedTag.write(rawData).then(() => {
console.log("connectedTag.writeNdefTag Promise success.");
}).catch((err: BusinessError)=> {
console.error("connectedTag.writeNdefTag Promise err: " + err);
});
```
## connectedTag.writeNdefTag(deprecated)
writeNdefTag(data: string, callback: AsyncCallback<void>): void
写入内容到有源标签,使用AsyncCallback方式作为异步方法。
> **说明:**
>
> 从 API version 8 开始支持,从 API version 9 开始废弃,建议使用[connectedTag.write](#connectedtagwrite9)替代。
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.ConnectedTag
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| data | string | 是 | 有源标签内容, 最大长度为1024个字节。 |
| callback | AsyncCallback<void> | 是 | 读取有源标签内容回调函数。 |
**示例:**
```js
import { connectedTag } from '@kit.ConnectivityKit';
let rawData = "010203"; // change it to be correct.
connectedTag.writeNdefTag(rawData, (err)=> {
if (err) {
console.error("connectedTag.writeNdefTag AsyncCallback err: " + err);
} else {
console.log("connectedTag.writeNdefTag AsyncCallback success.");
}
});
```
## connectedTag.write9+
write(data: number[], callback: AsyncCallback<void>): void
写入内容到有源标签,使用AsyncCallback方式作为异步方法。
**需要权限:** ohos.permission.NFC_TAG
**系统能力:** SystemCapability.Communication.ConnectedTag
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| data | number[] | 是 | 有源标签内容, 由十六进制数字组成。范围:0x00至0xFF。 |
| callback | AsyncCallback<void> | 是 | 读取有源标签内容回调函数。 |
**错误码:**
以下错误码的详细介绍请参见[通用错误码说明文档](../errorcode-universal.md)和[NFC错误码](errorcode-nfc.md)。
| 错误码ID | 错误信息|
| -------- | -------- |
|201 | Permission denied. |
|401 | The parameter check failed. Possible causes:
1. Mandatory parameters are left unspecified.
2. Incorrect parameters types.
3. Parameter verification failed. |
|801 | Capability not supported. |
|3200101 | Connected NFC tag running state is abnormal in service. |
**示例:**
```js
import { connectedTag } from '@kit.ConnectivityKit';
let rawData = [0x01, 0x02, 0x03]; // change it to be correct.
connectedTag.write(rawData, (err)=> {
if (err) {
console.error("connectedTag.writeNdefTag AsyncCallback err: " + err);
} else {
console.log("connectedTag.writeNdefTag AsyncCallback success.");
}
});
```
## connectedTag.on('notify')
on(type: "notify", callback: Callback<number>): void
注册NFC场强状态事件。
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.ConnectedTag
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"notify"字符串。 |
| callback | Callback<number> | 是 | 状态改变回调函数,返回值参见[NfcRfType](#nfcrftype)。 |
## connectedTag.off('notify')
off(type: "notify", callback?: Callback<number>): void
取消NFC场强状态事件的注册。
**需要权限**:ohos.permission.NFC_TAG
**系统能力**:SystemCapability.Communication.ConnectedTag
**参数:**
| **参数名** | **类型** | **必填** | **说明** |
| -------- | -------- | -------- | -------- |
| type | string | 是 | 固定填"notify"字符串。 |
| callback | Callback<number> | 否 | 状态改变回调函数。如果callback不填,将“去注册”该事件关联的所有回调函数。|
**示例:**
```js
import { connectedTag } from '@kit.ConnectivityKit';
async function nfcTagTest(): Promise {
// Register event
connectedTag.on("notify", (rfState : number)=> {
console.log("connectedTag on Callback rfState: " + rfState);
});
try {
connectedTag.initialize();
let tag = [3, 1, 0];
console.log("connectedTag write: tag=" + tag);
await connectedTag.write(tag);
let data = await connectedTag.read();
console.log("connectedTag read: data=" + data);
connectedTag.uninitialize();
} catch (error) {
console.error("connectedTag error: " + error);
}
// Unregister event
connectedTag.off("notify", (rfState : number)=> {
console.log("connectedTag off Callback rfState: " + rfState);
});
}
export { nfcTagTest }
```
## NfcRfType
表示NFC场强状态的枚举。
**系统能力**:SystemCapability.Communication.ConnectedTag
| 名称 | 值 | 说明 |
| -------- | -------- | -------- |
| NFC_RF_LEAVE | 0 | NFC离场事件。 |
| NFC_RF_ENTER | 1 | NFC进场事件。 |