1e41f4b71Sopenharmony_ci# nfctech (标准NFC-Tag Nfc 技术) 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci本模块主要用于采用不同Nfc技术的Tag的读写操作。 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ci> **说明:** 6e41f4b71Sopenharmony_ci> 7e41f4b71Sopenharmony_ci> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci## 导入模块 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci```js 12e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 13e41f4b71Sopenharmony_ci``` 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## NfcATag 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ciNfcATag 提供 NFC-A(ISO 14443-3A)技术的属性和I/O操作的访问,继承自[TagSession](js-apis-tagSession.md)。 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ciTagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)。 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci以下是NfcATag的独有接口。 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci### NfcATag.getSak 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_cigetSak(): number 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci获取NFC-A标签的SAK值。 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci**返回值:** 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci| **类型** | **说明** | 36e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 37e41f4b71Sopenharmony_ci| number | NfcA 标签的SAK值,十六进制表示,范围是0x00~0xFF。 | 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci**示例:** 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci```js 42e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'nfcA' correctly. 45e41f4b71Sopenharmony_cilet sak : number = nfcA.getSak(); 46e41f4b71Sopenharmony_ciconsole.info("nfcA sak: " + sak); 47e41f4b71Sopenharmony_ci``` 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci### NfcATag.getAtqa 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_cigetAtqa(): number[] 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci获取NFC-A标签的Atqa值。 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 56e41f4b71Sopenharmony_ci 57e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 58e41f4b71Sopenharmony_ci 59e41f4b71Sopenharmony_ci**返回值:** 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci| **类型** | **说明** | 62e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 63e41f4b71Sopenharmony_ci| number[] | NfcA 标签的Atqa值,每个number十六进制表示,范围是0x00~0xFF。 | 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci**示例:** 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci```js 68e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 69e41f4b71Sopenharmony_ci 70e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'nfcA' correctly. 71e41f4b71Sopenharmony_cilet atqa : number[] = nfcA.getAtqa(); 72e41f4b71Sopenharmony_ciconsole.info("nfcA atqa: " + atqa); 73e41f4b71Sopenharmony_ci``` 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci## NfcBTag 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ciNfcBTag 提供对NFC-B(ISO 14443-3B)技术的属性和I/O操作的访问,继承自TagSession。 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ciTagSession是所有NFC Tag技术类型的基类,提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)。 80e41f4b71Sopenharmony_ci 81e41f4b71Sopenharmony_ci以下是NfcBTag的独有接口。 82e41f4b71Sopenharmony_ci 83e41f4b71Sopenharmony_ci### NfcBTag.getRespAppData 84e41f4b71Sopenharmony_ci 85e41f4b71Sopenharmony_cigetRespAppData(): number[] 86e41f4b71Sopenharmony_ci 87e41f4b71Sopenharmony_ci获取标签的应用程序数据。 88e41f4b71Sopenharmony_ci 89e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 90e41f4b71Sopenharmony_ci 91e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci**返回值:** 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci| **类型** | **说明** | 96e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 97e41f4b71Sopenharmony_ci| number[] | NfcB 标签的应用程序数据,每个number十六进制表示,范围是0x00~0xFF。 | 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci**示例:** 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ci```js 102e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 103e41f4b71Sopenharmony_ci 104e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'nfcB' correctly. 105e41f4b71Sopenharmony_cilet respAppData : number[] = nfcB.getRespAppData(); 106e41f4b71Sopenharmony_ciconsole.info("nfcB respAppData: " + respAppData); 107e41f4b71Sopenharmony_ci``` 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci### NfcBTag.getRespProtocol 110e41f4b71Sopenharmony_ci 111e41f4b71Sopenharmony_cigetRespProtocol(): number[] 112e41f4b71Sopenharmony_ci 113e41f4b71Sopenharmony_ci获取标签的协议信息。 114e41f4b71Sopenharmony_ci 115e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci**返回值:** 120e41f4b71Sopenharmony_ci 121e41f4b71Sopenharmony_ci| **类型** | **说明** | 122e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 123e41f4b71Sopenharmony_ci| number[] | NfcB 标签的协议信息,每个number十六进制表示,范围是0x00~0xFF。| 124e41f4b71Sopenharmony_ci 125e41f4b71Sopenharmony_ci**示例:** 126e41f4b71Sopenharmony_ci 127e41f4b71Sopenharmony_ci```js 128e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'nfcB' correctly. 131e41f4b71Sopenharmony_cilet respProtocol : number[] = nfcB.getRespProtocol(); 132e41f4b71Sopenharmony_ciconsole.info("nfcB respProtocol: " + respProtocol); 133e41f4b71Sopenharmony_ci``` 134e41f4b71Sopenharmony_ci 135e41f4b71Sopenharmony_ci## NfcFTag 136e41f4b71Sopenharmony_ci 137e41f4b71Sopenharmony_ciNfcFTag 提供对NFC-F(JIS 6319-4)技术的属性和I/O操作的访问,继承自TagSession。 138e41f4b71Sopenharmony_ci 139e41f4b71Sopenharmony_ciTagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)。 140e41f4b71Sopenharmony_ci 141e41f4b71Sopenharmony_ci以下是NfcFTag的独有接口。 142e41f4b71Sopenharmony_ci 143e41f4b71Sopenharmony_ci### NfcFTag.getSystemCode 144e41f4b71Sopenharmony_ci 145e41f4b71Sopenharmony_cigetSystemCode(): number[] 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci从标签实例获取系统代码。 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 150e41f4b71Sopenharmony_ci 151e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci**返回值:** 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ci| **类型** | **说明** | 156e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 157e41f4b71Sopenharmony_ci| number[] | NfcF 标签的系统代码,每个number十六进制表示,范围是0x00~0xFF。| 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_ci**示例:** 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci```js 162e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 163e41f4b71Sopenharmony_ci 164e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'nfcF' correctly. 165e41f4b71Sopenharmony_cilet systemCode : number[] = nfcF.getSystemCode(); 166e41f4b71Sopenharmony_ciconsole.info("nfcF systemCode: " + systemCode); 167e41f4b71Sopenharmony_ci``` 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci### NfcFTag.getPmm 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_cigetPmm(): number[] 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci从标签实例获取PMm(由IC代码和制造商参数组成)。 174e41f4b71Sopenharmony_ci 175e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 176e41f4b71Sopenharmony_ci 177e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 178e41f4b71Sopenharmony_ci 179e41f4b71Sopenharmony_ci**返回值:** 180e41f4b71Sopenharmony_ci 181e41f4b71Sopenharmony_ci| **类型** | **说明** | 182e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 183e41f4b71Sopenharmony_ci| number[] | NfcF 标签的PMm信息,每个number十六进制表示,范围是0x00~0xFF。| 184e41f4b71Sopenharmony_ci 185e41f4b71Sopenharmony_ci**示例:** 186e41f4b71Sopenharmony_ci 187e41f4b71Sopenharmony_ci```js 188e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'nfcF' correctly. 191e41f4b71Sopenharmony_cilet pmm : number[] = nfcF.getPmm(); 192e41f4b71Sopenharmony_ciconsole.info("nfcF pmm: " + pmm); 193e41f4b71Sopenharmony_ci``` 194e41f4b71Sopenharmony_ci 195e41f4b71Sopenharmony_ci## NfcVTag 196e41f4b71Sopenharmony_ci 197e41f4b71Sopenharmony_ciNfcVTag 提供对NFC-V(ISO 15693)技术的属性和I/O操作的访问,继承自TagSession。 198e41f4b71Sopenharmony_ci 199e41f4b71Sopenharmony_ciTagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)。 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci以下是NfcVTag的独有接口。 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_ci### NfcvTag.getResponseFlags 204e41f4b71Sopenharmony_ci 205e41f4b71Sopenharmony_cigetResponseFlags(): number 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_ci从标签实例实例获取响应标志。 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_ci**返回值:** 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci| **类型** | **说明** | 216e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 217e41f4b71Sopenharmony_ci| number | NfcV 标签的响应标志,十六进制表示,范围是0x00~0xFF。| 218e41f4b71Sopenharmony_ci 219e41f4b71Sopenharmony_ci**示例:** 220e41f4b71Sopenharmony_ci 221e41f4b71Sopenharmony_ci```js 222e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 223e41f4b71Sopenharmony_ci 224e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'nfcV' correctly. 225e41f4b71Sopenharmony_cilet responseFlags : number = nfcV.getResponseFlags(); 226e41f4b71Sopenharmony_ciconsole.info("nfcV responseFlags: " + responseFlags); 227e41f4b71Sopenharmony_ci``` 228e41f4b71Sopenharmony_ci 229e41f4b71Sopenharmony_ci### NfcvTag.getDsfId 230e41f4b71Sopenharmony_ci 231e41f4b71Sopenharmony_cigetDsfId(): number 232e41f4b71Sopenharmony_ci 233e41f4b71Sopenharmony_ci从标签实例实例获取数据存储格式标识符(DSFID)。 234e41f4b71Sopenharmony_ci 235e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 236e41f4b71Sopenharmony_ci 237e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 238e41f4b71Sopenharmony_ci 239e41f4b71Sopenharmony_ci**返回值:** 240e41f4b71Sopenharmony_ci 241e41f4b71Sopenharmony_ci| **类型** | **说明** | 242e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 243e41f4b71Sopenharmony_ci| number | NfcV 标签的数据存储格式标识符,十六进制表示,范围是0x00~0xFF。| 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci**示例:** 246e41f4b71Sopenharmony_ci 247e41f4b71Sopenharmony_ci```js 248e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 249e41f4b71Sopenharmony_ci 250e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'nfcV' correctly. 251e41f4b71Sopenharmony_cilet dsfId : number = nfcV.getDsfId(); 252e41f4b71Sopenharmony_ciconsole.info("nfcV dsfId: " + dsfId); 253e41f4b71Sopenharmony_ci``` 254e41f4b71Sopenharmony_ci 255e41f4b71Sopenharmony_ci## IsoDepTag<sup>9+</sup> 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ciIsoDepTag 提供对ISO-DEP(ISO 14443-4)技术的属性和I/O操作的访问,继承自TagSession。 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_ciTagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)。 260e41f4b71Sopenharmony_ci 261e41f4b71Sopenharmony_ci以下是IsoDepTag的独有接口。 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci### IsoDepTag.getHistoricalBytes<sup>9+</sup> 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_cigetHistoricalBytes(): number[] 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci获取标签的历史字节,针对基于NfcA通信技术的IsoDep卡片。 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 270e41f4b71Sopenharmony_ci 271e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 272e41f4b71Sopenharmony_ci 273e41f4b71Sopenharmony_ci**返回值:** 274e41f4b71Sopenharmony_ci 275e41f4b71Sopenharmony_ci| **类型** | **说明** | 276e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 277e41f4b71Sopenharmony_ci| number[] | IsoDepTag 标签的历史字节,每个number十六进制表示,范围是0x00~0xFF。如果该IsoDep类型Tag是基于NfcB技术的,则该返回值为空。| 278e41f4b71Sopenharmony_ci 279e41f4b71Sopenharmony_ci**示例:** 280e41f4b71Sopenharmony_ci 281e41f4b71Sopenharmony_ci```js 282e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 283e41f4b71Sopenharmony_ci 284e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'isoDep' correctly. 285e41f4b71Sopenharmony_cilet historicalBytes : number[] = isoDep.getHistoricalBytes(); 286e41f4b71Sopenharmony_ciconsole.info("isoDep historicalBytes: " + historicalBytes); 287e41f4b71Sopenharmony_ci``` 288e41f4b71Sopenharmony_ci 289e41f4b71Sopenharmony_ci### IsoDepTag.getHiLayerResponse<sup>9+</sup> 290e41f4b71Sopenharmony_ci 291e41f4b71Sopenharmony_cigetHiLayerResponse(): number[] 292e41f4b71Sopenharmony_ci 293e41f4b71Sopenharmony_ci获取标签的更高层响应字节,针对基于NfcB通信技术的IsoDep卡片。 294e41f4b71Sopenharmony_ci 295e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 296e41f4b71Sopenharmony_ci 297e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 298e41f4b71Sopenharmony_ci 299e41f4b71Sopenharmony_ci**返回值:** 300e41f4b71Sopenharmony_ci 301e41f4b71Sopenharmony_ci| **类型** | **说明** | 302e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 303e41f4b71Sopenharmony_ci| number[] | IsoDepTag 标签的更高层响应字节,每个number十六进制表示,范围是0x00~0xFF。如果该IsoDep类型Tag是基于NfcA技术的,则该返回值为空。| 304e41f4b71Sopenharmony_ci 305e41f4b71Sopenharmony_ci**示例:** 306e41f4b71Sopenharmony_ci 307e41f4b71Sopenharmony_ci```js 308e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 309e41f4b71Sopenharmony_ci 310e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'isoDep' correctly. 311e41f4b71Sopenharmony_cilet hiLayerResponse : number[] = isoDep.getHiLayerResponse(); 312e41f4b71Sopenharmony_ciconsole.info("isoDep hiLayerResponse: " + hiLayerResponse); 313e41f4b71Sopenharmony_ci``` 314e41f4b71Sopenharmony_ci 315e41f4b71Sopenharmony_ci### IsoDepTag.isExtendedApduSupported<sup>9+</sup> 316e41f4b71Sopenharmony_ci 317e41f4b71Sopenharmony_ciisExtendedApduSupported(): Promise<boolean> 318e41f4b71Sopenharmony_ci 319e41f4b71Sopenharmony_ci检查是否支持扩展的APDU,使用Promise方式作为异步方法。 320e41f4b71Sopenharmony_ci 321e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 322e41f4b71Sopenharmony_ci 323e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 324e41f4b71Sopenharmony_ci 325e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 326e41f4b71Sopenharmony_ci 327e41f4b71Sopenharmony_ci**返回值:** 328e41f4b71Sopenharmony_ci 329e41f4b71Sopenharmony_ci| **类型** | **说明** | 330e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 331e41f4b71Sopenharmony_ci| Promise<boolean> | 以Promise形式返回检查结果,true: 支持, false: 不支持。| 332e41f4b71Sopenharmony_ci 333e41f4b71Sopenharmony_ci**错误码:** 334e41f4b71Sopenharmony_ci 335e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 336e41f4b71Sopenharmony_ci 337e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 338e41f4b71Sopenharmony_ci| ------- | -------| 339e41f4b71Sopenharmony_ci| 201 | Permission denied. | 340e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 341e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 342e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 343e41f4b71Sopenharmony_ci 344e41f4b71Sopenharmony_ci**示例:** 345e41f4b71Sopenharmony_ci 346e41f4b71Sopenharmony_ci```js 347e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 348e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 349e41f4b71Sopenharmony_ci 350e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'isoDep' correctly. 351e41f4b71Sopenharmony_cifunction nfcTechDemo() { 352e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 353e41f4b71Sopenharmony_ci if (!isoDep.isTagConnected()) { 354e41f4b71Sopenharmony_ci if (!isoDep.connectTag()) { 355e41f4b71Sopenharmony_ci console.error("isoDep connectTag failed."); 356e41f4b71Sopenharmony_ci return; 357e41f4b71Sopenharmony_ci } 358e41f4b71Sopenharmony_ci } 359e41f4b71Sopenharmony_ci 360e41f4b71Sopenharmony_ci try { 361e41f4b71Sopenharmony_ci isoDep.isExtendedApduSupported().then((response: boolean) => { 362e41f4b71Sopenharmony_ci console.info("isoDep isExtendedApduSupported Promise response: " + response); 363e41f4b71Sopenharmony_ci }).catch((err: BusinessError) => { 364e41f4b71Sopenharmony_ci console.error("isoDep isExtendedApduSupported Promise Code: ${err.code}, message: ${err.message}"); 365e41f4b71Sopenharmony_ci }); 366e41f4b71Sopenharmony_ci } catch (businessError) { 367e41f4b71Sopenharmony_ci console.error("isoDep isExtendedApduSupported Promise Code: ${(businessError as Businsess).code}, " + 368e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 369e41f4b71Sopenharmony_ci } 370e41f4b71Sopenharmony_ci} 371e41f4b71Sopenharmony_ci 372e41f4b71Sopenharmony_ci``` 373e41f4b71Sopenharmony_ci 374e41f4b71Sopenharmony_ci### IsoDepTag.isExtendedApduSupported<sup>9+</sup> 375e41f4b71Sopenharmony_ci 376e41f4b71Sopenharmony_ciisExtendedApduSupported(callback: AsyncCallback\<boolean>): void 377e41f4b71Sopenharmony_ci 378e41f4b71Sopenharmony_ci检查是否支持扩展的APDU,使用AsyncCallback方式作为异步方法。 379e41f4b71Sopenharmony_ci 380e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 381e41f4b71Sopenharmony_ci 382e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 383e41f4b71Sopenharmony_ci 384e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 385e41f4b71Sopenharmony_ci 386e41f4b71Sopenharmony_ci**参数:** 387e41f4b71Sopenharmony_ci 388e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 389e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 390e41f4b71Sopenharmony_ci| callback | AsyncCallback\<boolean> | 是 | 回调函数,true: 支持, false: 不支持。 | 391e41f4b71Sopenharmony_ci 392e41f4b71Sopenharmony_ci**错误码:** 393e41f4b71Sopenharmony_ci 394e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 395e41f4b71Sopenharmony_ci 396e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 397e41f4b71Sopenharmony_ci| ------- | -------| 398e41f4b71Sopenharmony_ci| 201 | Permission denied. | 399e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 400e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 401e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 402e41f4b71Sopenharmony_ci 403e41f4b71Sopenharmony_ci**示例:** 404e41f4b71Sopenharmony_ci 405e41f4b71Sopenharmony_ci```js 406e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 407e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 408e41f4b71Sopenharmony_ci 409e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'isoDep' correctly. 410e41f4b71Sopenharmony_cifunction nfcTechDemo() { 411e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 412e41f4b71Sopenharmony_ci if (!isoDep.isTagConnected()) { 413e41f4b71Sopenharmony_ci if (!isoDep.connectTag()) { 414e41f4b71Sopenharmony_ci console.error("isoDep connectTag failed."); 415e41f4b71Sopenharmony_ci return; 416e41f4b71Sopenharmony_ci } 417e41f4b71Sopenharmony_ci } 418e41f4b71Sopenharmony_ci 419e41f4b71Sopenharmony_ci try { 420e41f4b71Sopenharmony_ci isoDep.isExtendedApduSupported((err: BusinessError, response: boolean) => { 421e41f4b71Sopenharmony_ci if (err) { 422e41f4b71Sopenharmony_ci console.error("isoDep isExtendedApduSupported AsyncCallback Code: ${err.code}, message: ${err. message}"); 423e41f4b71Sopenharmony_ci } else { 424e41f4b71Sopenharmony_ci console.info("isoDep isExtendedApduSupported AsyncCallback response: " + response); 425e41f4b71Sopenharmony_ci } 426e41f4b71Sopenharmony_ci }); 427e41f4b71Sopenharmony_ci } catch (busiErr) { 428e41f4b71Sopenharmony_ci console.error("isoDep isExtendedApduSupported AsyncCallback Code: ${(businessError as Business).code}, " + "message: ${(businessError as Business).message}"); 429e41f4b71Sopenharmony_ci } 430e41f4b71Sopenharmony_ci} 431e41f4b71Sopenharmony_ci 432e41f4b71Sopenharmony_ci``` 433e41f4b71Sopenharmony_ci 434e41f4b71Sopenharmony_ci## NdefMessage<sup>9+</sup> 435e41f4b71Sopenharmony_ci 436e41f4b71Sopenharmony_ci### NdefMessage.getNdefRecords<sup>9+</sup> 437e41f4b71Sopenharmony_ci 438e41f4b71Sopenharmony_cigetNdefRecords(): [tag.NdefRecord](js-apis-nfcTag.md#ndefrecord9)[] 439e41f4b71Sopenharmony_ci 440e41f4b71Sopenharmony_ci获取NDEF消息中的所有记录。 441e41f4b71Sopenharmony_ci 442e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 443e41f4b71Sopenharmony_ci 444e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 445e41f4b71Sopenharmony_ci 446e41f4b71Sopenharmony_ci**返回值:** 447e41f4b71Sopenharmony_ci 448e41f4b71Sopenharmony_ci| **类型** | **说明** | 449e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 450e41f4b71Sopenharmony_ci| [tag.NdefRecord](js-apis-nfcTag.md#ndefrecord9)[] | NDEF标签的Record列表,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。 | 451e41f4b71Sopenharmony_ci 452e41f4b71Sopenharmony_ci**示例:** 453e41f4b71Sopenharmony_ci 454e41f4b71Sopenharmony_ci```js 455e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 456e41f4b71Sopenharmony_ci 457e41f4b71Sopenharmony_ci// Obtains ndefMessage from tag.ndef.createNdefMessage or ndefTag.getNdefMessage. 458e41f4b71Sopenharmony_ci// let ndefMessage : tag.NdefMessage = tag.ndef.createNdefMessage(...); 459e41f4b71Sopenharmony_ci// let ndefMessage : tag.NdefMessage = ndefTag.getNdefMessage(); 460e41f4b71Sopenharmony_ci 461e41f4b71Sopenharmony_cilet ndefRecords : tag.NdefRecord[] = ndefMessage.getNdefRecords(); 462e41f4b71Sopenharmony_ciconsole.info("ndef ndefRecords number: " + ndefRecords.length); 463e41f4b71Sopenharmony_ci``` 464e41f4b71Sopenharmony_ci 465e41f4b71Sopenharmony_ci## NdefTag<sup>9+</sup> 466e41f4b71Sopenharmony_ci 467e41f4b71Sopenharmony_ci提供对已格式化为NDEF的NFC标签的数据和操作的访问,继承自TagSession。 468e41f4b71Sopenharmony_ci 469e41f4b71Sopenharmony_ciTagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)。 470e41f4b71Sopenharmony_ci 471e41f4b71Sopenharmony_ci以下是NdefTag的独有接口。 472e41f4b71Sopenharmony_ci 473e41f4b71Sopenharmony_ci### NdefTag.getNdefTagType<sup>9+</sup> 474e41f4b71Sopenharmony_ci 475e41f4b71Sopenharmony_cigetNdefTagType(): [tag.NfcForumType](js-apis-nfcTag.md#nfcforumtype9) 476e41f4b71Sopenharmony_ci 477e41f4b71Sopenharmony_ci获取NDEF标签的类型。 478e41f4b71Sopenharmony_ci 479e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 480e41f4b71Sopenharmony_ci 481e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 482e41f4b71Sopenharmony_ci 483e41f4b71Sopenharmony_ci**返回值:** 484e41f4b71Sopenharmony_ci 485e41f4b71Sopenharmony_ci| **类型** | **说明** | 486e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 487e41f4b71Sopenharmony_ci| [tag.NfcForumType](js-apis-nfcTag.md#nfcforumtype9) | NDEF标签类型,包括NFC FORUM TYPE 1/2/3/4等。| 488e41f4b71Sopenharmony_ci 489e41f4b71Sopenharmony_ci**示例:** 490e41f4b71Sopenharmony_ci 491e41f4b71Sopenharmony_ci```js 492e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 493e41f4b71Sopenharmony_ci 494e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 495e41f4b71Sopenharmony_cilet ndefTagType : tag.NfcForumType = ndefTag.getNdefTagType(); 496e41f4b71Sopenharmony_ciconsole.info("ndef ndefTagType: " + ndefTagType); 497e41f4b71Sopenharmony_ci``` 498e41f4b71Sopenharmony_ci 499e41f4b71Sopenharmony_ci### NdefTag.getNdefMessage<sup>9+</sup> 500e41f4b71Sopenharmony_ci 501e41f4b71Sopenharmony_cigetNdefMessage(): [NdefMessage](#ndefmessage9) 502e41f4b71Sopenharmony_ci 503e41f4b71Sopenharmony_ci获取发现NDEF标签时,从标签读取的Message。 504e41f4b71Sopenharmony_ci 505e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 506e41f4b71Sopenharmony_ci 507e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 508e41f4b71Sopenharmony_ci 509e41f4b71Sopenharmony_ci**返回值:** 510e41f4b71Sopenharmony_ci 511e41f4b71Sopenharmony_ci| **类型** | **说明** | 512e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 513e41f4b71Sopenharmony_ci| [NdefMessage](#ndefmessage9) | NDEF标签的Message,详见NDEF技术规范《NFCForum-TS-NDEF_1.0》。| 514e41f4b71Sopenharmony_ci 515e41f4b71Sopenharmony_ci**示例:** 516e41f4b71Sopenharmony_ci```js 517e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 518e41f4b71Sopenharmony_ci 519e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 520e41f4b71Sopenharmony_cilet ndefMessage : tag.NdefMessage = ndefTag.getNdefMessage(); 521e41f4b71Sopenharmony_ciconsole.info("ndef ndefMessage: " + ndefMessage); 522e41f4b71Sopenharmony_ci``` 523e41f4b71Sopenharmony_ci 524e41f4b71Sopenharmony_ci### NdefTag.isNdefWritable<sup>9+</sup> 525e41f4b71Sopenharmony_ci 526e41f4b71Sopenharmony_ciisNdefWritable(): boolean 527e41f4b71Sopenharmony_ci 528e41f4b71Sopenharmony_ci检查NDEF标签是否可写。在调用写数据接口前,需要先判断是否支持写操作。 529e41f4b71Sopenharmony_ci 530e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 531e41f4b71Sopenharmony_ci 532e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 533e41f4b71Sopenharmony_ci 534e41f4b71Sopenharmony_ci**返回值:** 535e41f4b71Sopenharmony_ci 536e41f4b71Sopenharmony_ci| **类型** | **说明** | 537e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 538e41f4b71Sopenharmony_ci| boolean | 检查结果,true: 可写, false: 不可写。| 539e41f4b71Sopenharmony_ci 540e41f4b71Sopenharmony_ci**示例:** 541e41f4b71Sopenharmony_ci 542e41f4b71Sopenharmony_ci```js 543e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 544e41f4b71Sopenharmony_ci 545e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 546e41f4b71Sopenharmony_cilet isWritable : boolean = ndefTag.isNdefWritable(); 547e41f4b71Sopenharmony_ciconsole.info("ndef isNdefWritable: " + isWritable); 548e41f4b71Sopenharmony_ci``` 549e41f4b71Sopenharmony_ci 550e41f4b71Sopenharmony_ci### NdefTag.readNdef<sup>9+</sup> 551e41f4b71Sopenharmony_ci 552e41f4b71Sopenharmony_cireadNdef(): Promise\<[NdefMessage](#ndefmessage9)> 553e41f4b71Sopenharmony_ci 554e41f4b71Sopenharmony_ci读取标签上的NDEF消息,使用Promise方式作为异步方法。 555e41f4b71Sopenharmony_ci 556e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 557e41f4b71Sopenharmony_ci 558e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 559e41f4b71Sopenharmony_ci 560e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 561e41f4b71Sopenharmony_ci 562e41f4b71Sopenharmony_ci**返回值:** 563e41f4b71Sopenharmony_ci 564e41f4b71Sopenharmony_ci| **类型** | **说明** | 565e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 566e41f4b71Sopenharmony_ci| Promise\<[NdefMessage](#ndefmessage9)> | 以Promise形式返回从NDEF标签中读取到的Message数据对象。| 567e41f4b71Sopenharmony_ci 568e41f4b71Sopenharmony_ci**错误码:** 569e41f4b71Sopenharmony_ci 570e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 571e41f4b71Sopenharmony_ci 572e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 573e41f4b71Sopenharmony_ci| ------- | -------| 574e41f4b71Sopenharmony_ci| 201 | Permission denied. | 575e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 576e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 577e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 578e41f4b71Sopenharmony_ci 579e41f4b71Sopenharmony_ci**示例:** 580e41f4b71Sopenharmony_ci 581e41f4b71Sopenharmony_ci```js 582e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 583e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 584e41f4b71Sopenharmony_ci 585e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 586e41f4b71Sopenharmony_cifunction nfcTechDemo(){ 587e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 588e41f4b71Sopenharmony_ci if (!ndefTag.isTagConnected()) { 589e41f4b71Sopenharmony_ci if (!ndefTag.connectTag()) { 590e41f4b71Sopenharmony_ci console.error("ndefTag connectTag failed."); 591e41f4b71Sopenharmony_ci return; 592e41f4b71Sopenharmony_ci } 593e41f4b71Sopenharmony_ci } 594e41f4b71Sopenharmony_ci 595e41f4b71Sopenharmony_ci try { 596e41f4b71Sopenharmony_ci ndefTag.readNdef().then((ndefmessage : tag.NdefMessage) => { 597e41f4b71Sopenharmony_ci console.info("ndef readNdef Promise ndefmessage: " + ndefmessage); 598e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 599e41f4b71Sopenharmony_ci console.error("ndef readNdef Promise err Code: ${err.code}, message: ${err.message}"); 600e41f4b71Sopenharmony_ci }); 601e41f4b71Sopenharmony_ci } catch (businessError) { 602e41f4b71Sopenharmony_ci console.error("ndef readNdef Promise catch businessError Code: ${(businessError as BusinessError).code}, " + 603e41f4b71Sopenharmony_ci "message: ${(businessError as BusinessError).message}"); 604e41f4b71Sopenharmony_ci } 605e41f4b71Sopenharmony_ci} 606e41f4b71Sopenharmony_ci 607e41f4b71Sopenharmony_ci``` 608e41f4b71Sopenharmony_ci 609e41f4b71Sopenharmony_ci### NdefTag.readNdef<sup>9+</sup> 610e41f4b71Sopenharmony_ci 611e41f4b71Sopenharmony_cireadNdef(callback: AsyncCallback\<[NdefMessage](#ndefmessage9)>): void 612e41f4b71Sopenharmony_ci 613e41f4b71Sopenharmony_ci读取标签上的NDEF消息,使用AsyncCallback方式作为异步方法。 614e41f4b71Sopenharmony_ci 615e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 616e41f4b71Sopenharmony_ci 617e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 618e41f4b71Sopenharmony_ci 619e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 620e41f4b71Sopenharmony_ci 621e41f4b71Sopenharmony_ci**参数:** 622e41f4b71Sopenharmony_ci 623e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 624e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 625e41f4b71Sopenharmony_ci| callback | AsyncCallback\<[NdefMessage](#ndefmessage9)> | 是 | 回调函数,返回从NDEF标签中读取到的Message信息。| 626e41f4b71Sopenharmony_ci 627e41f4b71Sopenharmony_ci**错误码:** 628e41f4b71Sopenharmony_ci 629e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 630e41f4b71Sopenharmony_ci 631e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 632e41f4b71Sopenharmony_ci| ------- | -------| 633e41f4b71Sopenharmony_ci| 201 | Permission denied. | 634e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 635e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 636e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 637e41f4b71Sopenharmony_ci 638e41f4b71Sopenharmony_ci**示例:** 639e41f4b71Sopenharmony_ci 640e41f4b71Sopenharmony_ci```js 641e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 642e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 643e41f4b71Sopenharmony_ci 644e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 645e41f4b71Sopenharmony_cifunction nfcTechDemo() { 646e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 647e41f4b71Sopenharmony_ci if (!ndefTag.isTagConnected()) { 648e41f4b71Sopenharmony_ci if (!ndefTag.connectTag()) { 649e41f4b71Sopenharmony_ci console.error("ndefTag connectTag failed."); 650e41f4b71Sopenharmony_ci return; 651e41f4b71Sopenharmony_ci } 652e41f4b71Sopenharmony_ci } 653e41f4b71Sopenharmony_ci 654e41f4b71Sopenharmony_ci try { 655e41f4b71Sopenharmony_ci ndefTag.readNdef((err : BusinessError, ndefmessage : tag.NdefMessage)=> { 656e41f4b71Sopenharmony_ci if (err) { 657e41f4b71Sopenharmony_ci console.error("ndef readNdef AsyncCallback err Code: ${err.code}, message: ${err.message}"); 658e41f4b71Sopenharmony_ci } else { 659e41f4b71Sopenharmony_ci console.info("ndef readNdef AsyncCallback ndefmessage: " + ndefmessage); 660e41f4b71Sopenharmony_ci } 661e41f4b71Sopenharmony_ci }); 662e41f4b71Sopenharmony_ci } catch (businessError) { 663e41f4b71Sopenharmony_ci console.error("ndef readNdef AsyncCallback catch Code: ${(businessError : BusinessError).code}," + 664e41f4b71Sopenharmony_ci " message: ${(businessError : BusinessError).message}"); 665e41f4b71Sopenharmony_ci } 666e41f4b71Sopenharmony_ci} 667e41f4b71Sopenharmony_ci 668e41f4b71Sopenharmony_ci``` 669e41f4b71Sopenharmony_ci 670e41f4b71Sopenharmony_ci### NdefTag.writeNdef<sup>9+</sup> 671e41f4b71Sopenharmony_ci 672e41f4b71Sopenharmony_ciwriteNdef(msg: [NdefMessage](#ndefmessage9)): Promise\<void> 673e41f4b71Sopenharmony_ci 674e41f4b71Sopenharmony_ci将NDEF Message数据对象写入标签,使用Promise方式作为异步方法。 675e41f4b71Sopenharmony_ci 676e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 677e41f4b71Sopenharmony_ci 678e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 679e41f4b71Sopenharmony_ci 680e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 681e41f4b71Sopenharmony_ci 682e41f4b71Sopenharmony_ci**参数:** 683e41f4b71Sopenharmony_ci 684e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 685e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 686e41f4b71Sopenharmony_ci| msg | [NdefMessage](#ndefmessage9) | 是 | NDEF Message数据对象。| 687e41f4b71Sopenharmony_ci 688e41f4b71Sopenharmony_ci**返回值:** 689e41f4b71Sopenharmony_ci 690e41f4b71Sopenharmony_ci| 类型 | 说明 | 691e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 692e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 693e41f4b71Sopenharmony_ci 694e41f4b71Sopenharmony_ci**错误码:** 695e41f4b71Sopenharmony_ci 696e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 697e41f4b71Sopenharmony_ci 698e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 699e41f4b71Sopenharmony_ci| ------- | -------| 700e41f4b71Sopenharmony_ci| 201 | Permission denied. | 701e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 702e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 703e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 704e41f4b71Sopenharmony_ci 705e41f4b71Sopenharmony_ci**示例:** 706e41f4b71Sopenharmony_ci 707e41f4b71Sopenharmony_ci```js 708e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 709e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 710e41f4b71Sopenharmony_ci 711e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 712e41f4b71Sopenharmony_ci// ndefMessage created from raw data, such as: 713e41f4b71Sopenharmony_cilet ndefMessage : tag.NdefMessage = 714e41f4b71Sopenharmony_ci tag.ndef.createNdefMessage([0xD1, 0x01, 0x03, 0x54, 0x4E, 0x46, 0x43]); // MUST can be parsed as NDEF Record. 715e41f4b71Sopenharmony_ci// or ndefMessage created from tag.ndef.createNdefMessage(ndefRecords: NdefRecord[]) 716e41f4b71Sopenharmony_ci 717e41f4b71Sopenharmony_cifunction nfcTechDemo() { 718e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 719e41f4b71Sopenharmony_ci if (!ndefTag.isTagConnected()) { 720e41f4b71Sopenharmony_ci if (!ndefTag.connectTag()) { 721e41f4b71Sopenharmony_ci console.error("ndefTag connectTag failed."); 722e41f4b71Sopenharmony_ci return; 723e41f4b71Sopenharmony_ci } 724e41f4b71Sopenharmony_ci } 725e41f4b71Sopenharmony_ci 726e41f4b71Sopenharmony_ci try { 727e41f4b71Sopenharmony_ci ndefTag.writeNdef(ndefMessage).then(() => { 728e41f4b71Sopenharmony_ci console.info("ndef writeNdef Promise success."); 729e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 730e41f4b71Sopenharmony_ci console.error("ndef writeNdef err Code: ${err.code}, message: ${err.message}"); 731e41f4b71Sopenharmony_ci }); 732e41f4b71Sopenharmony_ci } catch (businessError) { 733e41f4b71Sopenharmony_ci console.error("ndef writeNdef Promise catch businessError Code: ${(businessError as Businsess).code}, " + 734e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 735e41f4b71Sopenharmony_ci } 736e41f4b71Sopenharmony_ci} 737e41f4b71Sopenharmony_ci``` 738e41f4b71Sopenharmony_ci 739e41f4b71Sopenharmony_ci### NdefTag.writeNdef<sup>9+</sup> 740e41f4b71Sopenharmony_ci 741e41f4b71Sopenharmony_ciwriteNdef(msg: [NdefMessage](#ndefmessage9), callback: AsyncCallback\<void>): void 742e41f4b71Sopenharmony_ci 743e41f4b71Sopenharmony_ci将NDEF Message数据对象写入此标签,使用AsyncCallback方式作为异步方法。 744e41f4b71Sopenharmony_ci 745e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 746e41f4b71Sopenharmony_ci 747e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 748e41f4b71Sopenharmony_ci 749e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 750e41f4b71Sopenharmony_ci 751e41f4b71Sopenharmony_ci**参数:** 752e41f4b71Sopenharmony_ci 753e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 754e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 755e41f4b71Sopenharmony_ci| msg | [NdefMessage](#ndefmessage9) | 是 | NDEF Message数据对象。 | 756e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。 | 757e41f4b71Sopenharmony_ci 758e41f4b71Sopenharmony_ci**错误码:** 759e41f4b71Sopenharmony_ci 760e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 761e41f4b71Sopenharmony_ci 762e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 763e41f4b71Sopenharmony_ci| ------- | -------| 764e41f4b71Sopenharmony_ci| 201 | Permission denied. | 765e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 766e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 767e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 768e41f4b71Sopenharmony_ci 769e41f4b71Sopenharmony_ci**示例:** 770e41f4b71Sopenharmony_ci 771e41f4b71Sopenharmony_ci```js 772e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 773e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 774e41f4b71Sopenharmony_ci 775e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 776e41f4b71Sopenharmony_ci// ndefMessage created from raw data, such as: 777e41f4b71Sopenharmony_cilet ndefMessage : tag.NdefMessage = 778e41f4b71Sopenharmony_ci tag.ndef.createNdefMessage([0xD1, 0x01, 0x03, 0x54, 0x4E, 0x46, 0x43]); // MUST can be parsed as NDEF Record. 779e41f4b71Sopenharmony_ci// or ndefMessage created from tag.ndef.createNdefMessage(ndefRecords: NdefRecord[]) 780e41f4b71Sopenharmony_ci 781e41f4b71Sopenharmony_cifunction nfcTechDemo() { 782e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 783e41f4b71Sopenharmony_ci if (!ndefTag.isTagConnected()) { 784e41f4b71Sopenharmony_ci if (!ndefTag.connectTag()) { 785e41f4b71Sopenharmony_ci console.error("ndefTag connectTag failed."); 786e41f4b71Sopenharmony_ci return; 787e41f4b71Sopenharmony_ci } 788e41f4b71Sopenharmony_ci } 789e41f4b71Sopenharmony_ci 790e41f4b71Sopenharmony_ci try { 791e41f4b71Sopenharmony_ci ndefTag.writeNdef(ndefMessage, (err : BusinessError)=> { 792e41f4b71Sopenharmony_ci if (err) { 793e41f4b71Sopenharmony_ci console.error("ndef writeNdef AsyncCallback Code: ${err.code}, message: ${err.message}"); 794e41f4b71Sopenharmony_ci } else { 795e41f4b71Sopenharmony_ci console.info("ndef writeNdef AsyncCallback success."); 796e41f4b71Sopenharmony_ci } 797e41f4b71Sopenharmony_ci }); 798e41f4b71Sopenharmony_ci } catch (businessError) { 799e41f4b71Sopenharmony_ci console.error("ndef writeNdef AsyncCallback catch businessError Code: ${(businessError as Businsess).code}," + 800e41f4b71Sopenharmony_ci " message: ${(businessError as Businsess).message}"); 801e41f4b71Sopenharmony_ci } 802e41f4b71Sopenharmony_ci} 803e41f4b71Sopenharmony_ci``` 804e41f4b71Sopenharmony_ci 805e41f4b71Sopenharmony_ci### NdefTag.canSetReadOnly<sup>9+</sup> 806e41f4b71Sopenharmony_ci 807e41f4b71Sopenharmony_cicanSetReadOnly(): boolean 808e41f4b71Sopenharmony_ci 809e41f4b71Sopenharmony_ci检查NDEF标签是否可以设置为只读。 810e41f4b71Sopenharmony_ci 811e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 812e41f4b71Sopenharmony_ci 813e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 814e41f4b71Sopenharmony_ci 815e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 816e41f4b71Sopenharmony_ci 817e41f4b71Sopenharmony_ci**返回值:** 818e41f4b71Sopenharmony_ci 819e41f4b71Sopenharmony_ci| **类型** | **说明** | 820e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 821e41f4b71Sopenharmony_ci| boolean| true: NDEF标签可设置为只读, false: NDEF标签不可设置为只读。 | 822e41f4b71Sopenharmony_ci 823e41f4b71Sopenharmony_ci**错误码:** 824e41f4b71Sopenharmony_ci 825e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 826e41f4b71Sopenharmony_ci 827e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 828e41f4b71Sopenharmony_ci| ------- | -------| 829e41f4b71Sopenharmony_ci| 201 | Permission denied. | 830e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 831e41f4b71Sopenharmony_ci 832e41f4b71Sopenharmony_ci**示例:** 833e41f4b71Sopenharmony_ci 834e41f4b71Sopenharmony_ci```js 835e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 836e41f4b71Sopenharmony_ci 837e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 838e41f4b71Sopenharmony_cilet canSetReadOnly : boolean = ndefTag.canSetReadOnly(); 839e41f4b71Sopenharmony_ciconsole.info("ndef canSetReadOnly: " + canSetReadOnly); 840e41f4b71Sopenharmony_ci``` 841e41f4b71Sopenharmony_ci 842e41f4b71Sopenharmony_ci### NdefTag.setReadOnly<sup>9+</sup> 843e41f4b71Sopenharmony_ci 844e41f4b71Sopenharmony_cisetReadOnly(): Promise\<void> 845e41f4b71Sopenharmony_ci 846e41f4b71Sopenharmony_ci将NDEF标签设置为只读,使用Promise方式作为异步方法。 847e41f4b71Sopenharmony_ci 848e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 849e41f4b71Sopenharmony_ci 850e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 851e41f4b71Sopenharmony_ci 852e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 853e41f4b71Sopenharmony_ci 854e41f4b71Sopenharmony_ci**返回值:** 855e41f4b71Sopenharmony_ci 856e41f4b71Sopenharmony_ci| 类型 | 说明 | 857e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 858e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 859e41f4b71Sopenharmony_ci 860e41f4b71Sopenharmony_ci**错误码:** 861e41f4b71Sopenharmony_ci 862e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 863e41f4b71Sopenharmony_ci 864e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 865e41f4b71Sopenharmony_ci| ------- | -------| 866e41f4b71Sopenharmony_ci| 201 | Permission denied. | 867e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 868e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 869e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 870e41f4b71Sopenharmony_ci 871e41f4b71Sopenharmony_ci**示例:** 872e41f4b71Sopenharmony_ci 873e41f4b71Sopenharmony_ci```js 874e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 875e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 876e41f4b71Sopenharmony_ci 877e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 878e41f4b71Sopenharmony_ci 879e41f4b71Sopenharmony_cifunction nfcTechDemo() { 880e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 881e41f4b71Sopenharmony_ci if (!ndefTag.isTagConnected()) { 882e41f4b71Sopenharmony_ci if (!ndefTag.connectTag()) { 883e41f4b71Sopenharmony_ci console.error("ndefTag connectTag failed."); 884e41f4b71Sopenharmony_ci return; 885e41f4b71Sopenharmony_ci } 886e41f4b71Sopenharmony_ci } 887e41f4b71Sopenharmony_ci 888e41f4b71Sopenharmony_ci try { 889e41f4b71Sopenharmony_ci ndefTag.setReadOnly().then(() => { 890e41f4b71Sopenharmony_ci console.info("ndef setReadOnly Promise success."); 891e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 892e41f4b71Sopenharmony_ci console.error("ndef setReadOnly Promise err Code: ${err.code}, message: ${err.message}"); 893e41f4b71Sopenharmony_ci }); 894e41f4b71Sopenharmony_ci } catch (businessError) { 895e41f4b71Sopenharmony_ci console.error("ndef setReadOnly Promise catch businessError Code: ${(businessError as Businsess).code}, " + 896e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 897e41f4b71Sopenharmony_ci } 898e41f4b71Sopenharmony_ci} 899e41f4b71Sopenharmony_ci``` 900e41f4b71Sopenharmony_ci 901e41f4b71Sopenharmony_ci### NdefTag.setReadOnly<sup>9+</sup> 902e41f4b71Sopenharmony_ci 903e41f4b71Sopenharmony_cisetReadOnly(callback: AsyncCallback\<void>): void 904e41f4b71Sopenharmony_ci 905e41f4b71Sopenharmony_ci将NDEF标签设置为只读,使用AsyncCallback方式作为异步方法。 906e41f4b71Sopenharmony_ci 907e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 908e41f4b71Sopenharmony_ci 909e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 910e41f4b71Sopenharmony_ci 911e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 912e41f4b71Sopenharmony_ci 913e41f4b71Sopenharmony_ci**参数:** 914e41f4b71Sopenharmony_ci 915e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 916e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 917e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 回调函数。 | 918e41f4b71Sopenharmony_ci 919e41f4b71Sopenharmony_ci**错误码:** 920e41f4b71Sopenharmony_ci 921e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 922e41f4b71Sopenharmony_ci 923e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 924e41f4b71Sopenharmony_ci| ------- | -------| 925e41f4b71Sopenharmony_ci| 201 | Permission denied. | 926e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 927e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 928e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 929e41f4b71Sopenharmony_ci 930e41f4b71Sopenharmony_ci**示例:** 931e41f4b71Sopenharmony_ci 932e41f4b71Sopenharmony_ci```js 933e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 934e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 935e41f4b71Sopenharmony_ci 936e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 937e41f4b71Sopenharmony_ci 938e41f4b71Sopenharmony_cifunction nfcTechDemo() { 939e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 940e41f4b71Sopenharmony_ci if (!ndefTag.isTagConnected()) { 941e41f4b71Sopenharmony_ci if (!ndefTag.connectTag()) { 942e41f4b71Sopenharmony_ci console.error("ndefTag connectTag failed."); 943e41f4b71Sopenharmony_ci return; 944e41f4b71Sopenharmony_ci } 945e41f4b71Sopenharmony_ci } 946e41f4b71Sopenharmony_ci 947e41f4b71Sopenharmony_ci try { 948e41f4b71Sopenharmony_ci ndefTag.setReadOnly((err : BusinessError)=> { 949e41f4b71Sopenharmony_ci if (err) { 950e41f4b71Sopenharmony_ci console.error("ndef setReadOnly AsyncCallback err Code: ${err.code}, message: ${err.message}"); 951e41f4b71Sopenharmony_ci } else { 952e41f4b71Sopenharmony_ci console.info("ndef setReadOnly AsyncCallback success."); 953e41f4b71Sopenharmony_ci } 954e41f4b71Sopenharmony_ci }); 955e41f4b71Sopenharmony_ci } catch (businessError) { 956e41f4b71Sopenharmony_ci console.error("ndef setReadOnly AsyncCallback catch businessError Code: ${(businessError as Businsess).code}, " + 957e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 958e41f4b71Sopenharmony_ci } 959e41f4b71Sopenharmony_ci} 960e41f4b71Sopenharmony_ci``` 961e41f4b71Sopenharmony_ci 962e41f4b71Sopenharmony_ci### NdefTag.getNdefTagTypeString<sup>9+</sup> 963e41f4b71Sopenharmony_ci 964e41f4b71Sopenharmony_cigetNdefTagTypeString(type: [tag.NfcForumType](js-apis-nfcTag.md#nfcforumtype9)): string 965e41f4b71Sopenharmony_ci 966e41f4b71Sopenharmony_ci将NFC论坛类型,转换为NFC论坛中定义的字符串描述。 967e41f4b71Sopenharmony_ci 968e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 969e41f4b71Sopenharmony_ci 970e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 971e41f4b71Sopenharmony_ci 972e41f4b71Sopenharmony_ci**参数:** 973e41f4b71Sopenharmony_ci 974e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 975e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 976e41f4b71Sopenharmony_ci| type | [tag.NfcForumType](js-apis-nfcTag.md#nfcforumtype9) | 是 | NDEF标签类型,包括NFC FORUM TYPE 1/2/3/4等。 | 977e41f4b71Sopenharmony_ci 978e41f4b71Sopenharmony_ci**返回值:** 979e41f4b71Sopenharmony_ci 980e41f4b71Sopenharmony_ci| **类型** | **说明** | 981e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 982e41f4b71Sopenharmony_ci| string | NFC论坛类型的字符串描述。| 983e41f4b71Sopenharmony_ci 984e41f4b71Sopenharmony_ci**错误码:** 985e41f4b71Sopenharmony_ci 986e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 987e41f4b71Sopenharmony_ci 988e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 989e41f4b71Sopenharmony_ci| ------- | -------| 990e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 991e41f4b71Sopenharmony_ci 992e41f4b71Sopenharmony_ci**示例:** 993e41f4b71Sopenharmony_ci 994e41f4b71Sopenharmony_ci```js 995e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 996e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 997e41f4b71Sopenharmony_ci 998e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefTag' correctly. 999e41f4b71Sopenharmony_ci 1000e41f4b71Sopenharmony_citry { 1001e41f4b71Sopenharmony_ci let ndefTypeString : string = ndefTag.getNdefTagTypeString(tag.NfcForumType.NFC_FORUM_TYPE_1); 1002e41f4b71Sopenharmony_ci console.info("ndef ndefTypeString: " + ndefTypeString); 1003e41f4b71Sopenharmony_ci} catch (businessError) { 1004e41f4b71Sopenharmony_ci console.error("ndef getNdefTagTypeString catch businessError Code: ${(businessError as Businsess).code}, " + 1005e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1006e41f4b71Sopenharmony_ci} 1007e41f4b71Sopenharmony_ci``` 1008e41f4b71Sopenharmony_ci 1009e41f4b71Sopenharmony_ci## MifareClassicTag<sup>9+</sup> 1010e41f4b71Sopenharmony_ci 1011e41f4b71Sopenharmony_ciMifareClassicTag提供对MIFARE Classic属性和I/O操作的访问,继承自[TagSession](js-apis-tagSession.md)。 1012e41f4b71Sopenharmony_ci 1013e41f4b71Sopenharmony_ciTagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)。 1014e41f4b71Sopenharmony_ci 1015e41f4b71Sopenharmony_ci以下是MifareClassicTag的独有接口。 1016e41f4b71Sopenharmony_ci 1017e41f4b71Sopenharmony_ci### MifareClassicTag.authenticateSector<sup>9+</sup> 1018e41f4b71Sopenharmony_ci 1019e41f4b71Sopenharmony_ciauthenticateSector(sectorIndex: number, key: number[], isKeyA: boolean): Promise\<void> 1020e41f4b71Sopenharmony_ci 1021e41f4b71Sopenharmony_ci使用密钥对扇区进行身份验证,只有身份验证成功的扇区可以进行操作。使用Promise方式作为异步方法。 1022e41f4b71Sopenharmony_ci 1023e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1024e41f4b71Sopenharmony_ci 1025e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1026e41f4b71Sopenharmony_ci 1027e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1028e41f4b71Sopenharmony_ci 1029e41f4b71Sopenharmony_ci**参数:** 1030e41f4b71Sopenharmony_ci 1031e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1032e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1033e41f4b71Sopenharmony_ci| sectorIndex | number | 是 | 待验证的扇区索引,从0开始。 | 1034e41f4b71Sopenharmony_ci| key | number[]| 是 | 用于扇区验证的密钥(6字节)。 | 1035e41f4b71Sopenharmony_ci| isKeyA | boolean | 是 | isKeyA标志。true 表示KeyA,false 表示KeyB。| 1036e41f4b71Sopenharmony_ci 1037e41f4b71Sopenharmony_ci**返回值:** 1038e41f4b71Sopenharmony_ci 1039e41f4b71Sopenharmony_ci| 类型 | 说明 | 1040e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 1041e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1042e41f4b71Sopenharmony_ci 1043e41f4b71Sopenharmony_ci**错误码:** 1044e41f4b71Sopenharmony_ci 1045e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1046e41f4b71Sopenharmony_ci 1047e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1048e41f4b71Sopenharmony_ci| ------- | -------| 1049e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1050e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1051e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1052e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1053e41f4b71Sopenharmony_ci 1054e41f4b71Sopenharmony_ci**示例:** 1055e41f4b71Sopenharmony_ci 1056e41f4b71Sopenharmony_ci```js 1057e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1058e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1059e41f4b71Sopenharmony_ci 1060e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1061e41f4b71Sopenharmony_ci 1062e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1063e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1064e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1065e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1066e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1067e41f4b71Sopenharmony_ci return; 1068e41f4b71Sopenharmony_ci } 1069e41f4b71Sopenharmony_ci } 1070e41f4b71Sopenharmony_ci 1071e41f4b71Sopenharmony_ci try { 1072e41f4b71Sopenharmony_ci let sectorIndex = 1; // change it to be correct index. 1073e41f4b71Sopenharmony_ci let key = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06] // MUST be 6 bytes, change it to be correct key. 1074e41f4b71Sopenharmony_ci mifareClassic.authenticateSector(sectorIndex, key, true).then(() => { 1075e41f4b71Sopenharmony_ci console.info("mifareClassic authenticateSector Promise success."); 1076e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 1077e41f4b71Sopenharmony_ci console.error("mifareClassic authenticateSector Promise errCode: ${err.code}, " + "message: ${err.message}"); 1078e41f4b71Sopenharmony_ci }); 1079e41f4b71Sopenharmony_ci } catch (businessError) { 1080e41f4b71Sopenharmony_ci console.error("mifareClassic authenticateSector Promise catch businessError Code: ${(businessError as Businsess).code}, " + 1081e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1082e41f4b71Sopenharmony_ci } 1083e41f4b71Sopenharmony_ci} 1084e41f4b71Sopenharmony_ci``` 1085e41f4b71Sopenharmony_ci 1086e41f4b71Sopenharmony_ci### MifareClassicTag.authenticateSector<sup>9+</sup> 1087e41f4b71Sopenharmony_ci 1088e41f4b71Sopenharmony_ciauthenticateSector(sectorIndex: number, key: number[], isKeyA: boolean, callback: AsyncCallback\<void>): void 1089e41f4b71Sopenharmony_ci 1090e41f4b71Sopenharmony_ci使用密钥对扇区进行身份验证,只有身份验证成功的扇区可以进行操作。使用AsyncCallback方式作为异步方法。 1091e41f4b71Sopenharmony_ci 1092e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1093e41f4b71Sopenharmony_ci 1094e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1095e41f4b71Sopenharmony_ci 1096e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1097e41f4b71Sopenharmony_ci 1098e41f4b71Sopenharmony_ci**参数:** 1099e41f4b71Sopenharmony_ci 1100e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1101e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1102e41f4b71Sopenharmony_ci| sectorIndex | number | 是 | 待验证的扇区索引,从0开始。 | 1103e41f4b71Sopenharmony_ci| key | number[]| 是 | 用于扇区验证的密钥(6字节)。 | 1104e41f4b71Sopenharmony_ci| isKeyA | boolean | 是 | isKeyA标志。true 表示KeyA,false 表示KeyB。| 1105e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 以callback形式异步返回扇区验证结果。| 1106e41f4b71Sopenharmony_ci 1107e41f4b71Sopenharmony_ci**错误码:** 1108e41f4b71Sopenharmony_ci 1109e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1110e41f4b71Sopenharmony_ci 1111e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1112e41f4b71Sopenharmony_ci| ------- | -------| 1113e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1114e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1115e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1116e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1117e41f4b71Sopenharmony_ci 1118e41f4b71Sopenharmony_ci**示例:** 1119e41f4b71Sopenharmony_ci```js 1120e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1121e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1122e41f4b71Sopenharmony_ci 1123e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1124e41f4b71Sopenharmony_ci 1125e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1126e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1127e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1128e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1129e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1130e41f4b71Sopenharmony_ci return; 1131e41f4b71Sopenharmony_ci } 1132e41f4b71Sopenharmony_ci } 1133e41f4b71Sopenharmony_ci 1134e41f4b71Sopenharmony_ci try { 1135e41f4b71Sopenharmony_ci let sectorIndex = 1; // change it to be correct index. 1136e41f4b71Sopenharmony_ci let key = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06] // MUST be 6 bytes, change it to be correct key. 1137e41f4b71Sopenharmony_ci mifareClassic.authenticateSector(sectorIndex, key, true, (err : BusinessError)=> { 1138e41f4b71Sopenharmony_ci if (err) { 1139e41f4b71Sopenharmony_ci console.error("mifareClassic authenticateSector AsyncCallback errCode: ${err.code}, message: ${err.message}"); 1140e41f4b71Sopenharmony_ci } else { 1141e41f4b71Sopenharmony_ci console.info("mifareClassic authenticateSector AsyncCallback success."); 1142e41f4b71Sopenharmony_ci } 1143e41f4b71Sopenharmony_ci }); 1144e41f4b71Sopenharmony_ci } catch (businessError) { 1145e41f4b71Sopenharmony_ci console.error("mifareClassic authenticateSector AsyncCallback catch Code: ${(businessError as Businsess).code}, " + 1146e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1147e41f4b71Sopenharmony_ci } 1148e41f4b71Sopenharmony_ci} 1149e41f4b71Sopenharmony_ci``` 1150e41f4b71Sopenharmony_ci 1151e41f4b71Sopenharmony_ci### MifareClassicTag.readSingleBlock<sup>9+</sup> 1152e41f4b71Sopenharmony_ci 1153e41f4b71Sopenharmony_cireadSingleBlock(blockIndex: number): Promise\<number[]> 1154e41f4b71Sopenharmony_ci 1155e41f4b71Sopenharmony_ci读取标签中一个块存储的内容,一个块大小为16字节。使用Promise方式作为异步方法。 1156e41f4b71Sopenharmony_ci 1157e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1158e41f4b71Sopenharmony_ci 1159e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1160e41f4b71Sopenharmony_ci 1161e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1162e41f4b71Sopenharmony_ci 1163e41f4b71Sopenharmony_ci**参数:** 1164e41f4b71Sopenharmony_ci 1165e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1166e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1167e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 要读取的块索引,从0开始。 | 1168e41f4b71Sopenharmony_ci 1169e41f4b71Sopenharmony_ci**返回值:** 1170e41f4b71Sopenharmony_ci 1171e41f4b71Sopenharmony_ci| **类型** | **说明** | 1172e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 1173e41f4b71Sopenharmony_ci| Promise\<number[]> | 以Promise形式返回读取的块数据。 | 1174e41f4b71Sopenharmony_ci 1175e41f4b71Sopenharmony_ci**错误码:** 1176e41f4b71Sopenharmony_ci 1177e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1178e41f4b71Sopenharmony_ci 1179e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1180e41f4b71Sopenharmony_ci| ------- | -------| 1181e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1182e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1183e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1184e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1185e41f4b71Sopenharmony_ci 1186e41f4b71Sopenharmony_ci**示例:** 1187e41f4b71Sopenharmony_ci 1188e41f4b71Sopenharmony_ci```js 1189e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1190e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1191e41f4b71Sopenharmony_ci 1192e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1193e41f4b71Sopenharmony_ci 1194e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1195e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1196e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1197e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1198e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1199e41f4b71Sopenharmony_ci return; 1200e41f4b71Sopenharmony_ci } 1201e41f4b71Sopenharmony_ci } 1202e41f4b71Sopenharmony_ci 1203e41f4b71Sopenharmony_ci try { 1204e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1205e41f4b71Sopenharmony_ci mifareClassic.readSingleBlock(blockIndex).then((data : number[]) => { 1206e41f4b71Sopenharmony_ci console.info("mifareClassic readSingleBlock Promise data: " + data); 1207e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 1208e41f4b71Sopenharmony_ci console.error("mifareClassic readSingleBlock Promise errCode: ${err.code}, message: ${err.message}"); 1209e41f4b71Sopenharmony_ci }); 1210e41f4b71Sopenharmony_ci } catch (businessError) { 1211e41f4b71Sopenharmony_ci console.error("mifareClassic readSingleBlock Promise catch businessError Code: ${(businessError as Businsess).code}, " + 1212e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1213e41f4b71Sopenharmony_ci } 1214e41f4b71Sopenharmony_ci} 1215e41f4b71Sopenharmony_ci``` 1216e41f4b71Sopenharmony_ci 1217e41f4b71Sopenharmony_ci### MifareClassicTag.readSingleBlock<sup>9+</sup> 1218e41f4b71Sopenharmony_ci 1219e41f4b71Sopenharmony_cireadSingleBlock(blockIndex: number, callback: AsyncCallback\<number[]>): void 1220e41f4b71Sopenharmony_ci 1221e41f4b71Sopenharmony_ci读取标签中一个块存储的内容,一个块大小为16字节。使用AsyncCallback方式作为异步方法。 1222e41f4b71Sopenharmony_ci 1223e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1224e41f4b71Sopenharmony_ci 1225e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1226e41f4b71Sopenharmony_ci 1227e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1228e41f4b71Sopenharmony_ci 1229e41f4b71Sopenharmony_ci**参数:** 1230e41f4b71Sopenharmony_ci 1231e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1232e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1233e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 要读取的块索引,从0开始。 | 1234e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number[]> | 是 |以callback形式异步返回读取到的块数据。 | 1235e41f4b71Sopenharmony_ci 1236e41f4b71Sopenharmony_ci**错误码:** 1237e41f4b71Sopenharmony_ci 1238e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1239e41f4b71Sopenharmony_ci 1240e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1241e41f4b71Sopenharmony_ci| ------- | -------| 1242e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1243e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1244e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1245e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1246e41f4b71Sopenharmony_ci 1247e41f4b71Sopenharmony_ci**示例:** 1248e41f4b71Sopenharmony_ci 1249e41f4b71Sopenharmony_ci```js 1250e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1251e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1252e41f4b71Sopenharmony_ci 1253e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1254e41f4b71Sopenharmony_ci 1255e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1256e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1257e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1258e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1259e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1260e41f4b71Sopenharmony_ci return; 1261e41f4b71Sopenharmony_ci } 1262e41f4b71Sopenharmony_ci } 1263e41f4b71Sopenharmony_ci 1264e41f4b71Sopenharmony_ci try { 1265e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1266e41f4b71Sopenharmony_ci mifareClassic.readSingleBlock(blockIndex, (err : BusinessError, data : number[])=> { 1267e41f4b71Sopenharmony_ci if (err) { 1268e41f4b71Sopenharmony_ci console.error("mifareClassic readSingleBlock AsyncCallback err: " + err); 1269e41f4b71Sopenharmony_ci } else { 1270e41f4b71Sopenharmony_ci console.info("mifareClassic readSingleBlock AsyncCallback data: " + data); 1271e41f4b71Sopenharmony_ci } 1272e41f4b71Sopenharmony_ci }); 1273e41f4b71Sopenharmony_ci } catch (businessError) { 1274e41f4b71Sopenharmony_ci console.error("mifareClassic readSingleBlock AsyncCallback catch businessError Code: " + 1275e41f4b71Sopenharmony_ci " ${(businessError as Businsess).code}, message: ${(businessError as Businsess).message}"); 1276e41f4b71Sopenharmony_ci } 1277e41f4b71Sopenharmony_ci} 1278e41f4b71Sopenharmony_ci``` 1279e41f4b71Sopenharmony_ci 1280e41f4b71Sopenharmony_ci### MifareClassicTag.writeSingleBlock<sup>9+</sup> 1281e41f4b71Sopenharmony_ci 1282e41f4b71Sopenharmony_ciwriteSingleBlock(blockIndex: number, data: number[]): Promise\<void> 1283e41f4b71Sopenharmony_ci 1284e41f4b71Sopenharmony_ci向标签中一个块存储写入内容,一个块大小为16字节。使用Promise方式作为异步方法。 1285e41f4b71Sopenharmony_ci 1286e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1287e41f4b71Sopenharmony_ci 1288e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1289e41f4b71Sopenharmony_ci 1290e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1291e41f4b71Sopenharmony_ci 1292e41f4b71Sopenharmony_ci**参数:** 1293e41f4b71Sopenharmony_ci 1294e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1295e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1296e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 要写入的块索引,从0开始。 | 1297e41f4b71Sopenharmony_ci| data | number[] | 是 | 要写入的数据,大小必须是16个字节。 | 1298e41f4b71Sopenharmony_ci 1299e41f4b71Sopenharmony_ci**返回值:** 1300e41f4b71Sopenharmony_ci 1301e41f4b71Sopenharmony_ci| 类型 | 说明 | 1302e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 1303e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1304e41f4b71Sopenharmony_ci 1305e41f4b71Sopenharmony_ci**错误码:** 1306e41f4b71Sopenharmony_ci 1307e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1308e41f4b71Sopenharmony_ci 1309e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1310e41f4b71Sopenharmony_ci| ------- | -------| 1311e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1312e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1313e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1314e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1315e41f4b71Sopenharmony_ci 1316e41f4b71Sopenharmony_ci**示例:** 1317e41f4b71Sopenharmony_ci 1318e41f4b71Sopenharmony_ci```js 1319e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1320e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1321e41f4b71Sopenharmony_ci 1322e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1323e41f4b71Sopenharmony_ci 1324e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1325e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1326e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1327e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1328e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1329e41f4b71Sopenharmony_ci return; 1330e41f4b71Sopenharmony_ci } 1331e41f4b71Sopenharmony_ci } 1332e41f4b71Sopenharmony_ci 1333e41f4b71Sopenharmony_ci try { 1334e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1335e41f4b71Sopenharmony_ci let rawData = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 1336e41f4b71Sopenharmony_ci 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10]; // MUST be 16 bytes, change it to be correct data. 1337e41f4b71Sopenharmony_ci mifareClassic.writeSingleBlock(blockIndex, rawData).then(() => { 1338e41f4b71Sopenharmony_ci console.info("mifareClassic writeSingleBlock Promise success."); 1339e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 1340e41f4b71Sopenharmony_ci console.error("mifareClassic writeSingleBlock Promise errCode: ${err.code}, message: ${err.message}"); 1341e41f4b71Sopenharmony_ci }); 1342e41f4b71Sopenharmony_ci } catch (businessError) { 1343e41f4b71Sopenharmony_ci console.error("mifareClassic writeSingleBlock Promise catch businessError Code: ${(businessError as Businsess).code}, " 1344e41f4b71Sopenharmony_ci + "message: ${(businessError as Businsess).message}"); 1345e41f4b71Sopenharmony_ci } 1346e41f4b71Sopenharmony_ci} 1347e41f4b71Sopenharmony_ci``` 1348e41f4b71Sopenharmony_ci 1349e41f4b71Sopenharmony_ci### MifareClassicTag.writeSingleBlock<sup>9+</sup> 1350e41f4b71Sopenharmony_ci 1351e41f4b71Sopenharmony_ciwriteSingleBlock(blockIndex: number, data: number[], callback: AsyncCallback\<void>): void 1352e41f4b71Sopenharmony_ci 1353e41f4b71Sopenharmony_ci向标签中一个块存储写入内容,一个块大小为16字节。使用AsyncCallback方式作为异步方法。 1354e41f4b71Sopenharmony_ci 1355e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1356e41f4b71Sopenharmony_ci 1357e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1358e41f4b71Sopenharmony_ci 1359e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1360e41f4b71Sopenharmony_ci 1361e41f4b71Sopenharmony_ci**参数:** 1362e41f4b71Sopenharmony_ci 1363e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1364e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1365e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 要写入的块索引,从0开始。 | 1366e41f4b71Sopenharmony_ci| data | number[] | 是 | 要写入的数据,大小必须是16个字节。 | 1367e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 以callback形式异步返回块操作结果。 | 1368e41f4b71Sopenharmony_ci 1369e41f4b71Sopenharmony_ci**错误码:** 1370e41f4b71Sopenharmony_ci 1371e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1372e41f4b71Sopenharmony_ci 1373e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1374e41f4b71Sopenharmony_ci| ------- | -------| 1375e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1376e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1377e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1378e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1379e41f4b71Sopenharmony_ci 1380e41f4b71Sopenharmony_ci**示例:** 1381e41f4b71Sopenharmony_ci 1382e41f4b71Sopenharmony_ci```js 1383e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1384e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1385e41f4b71Sopenharmony_ci 1386e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1387e41f4b71Sopenharmony_ci 1388e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1389e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1390e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1391e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1392e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1393e41f4b71Sopenharmony_ci return; 1394e41f4b71Sopenharmony_ci } 1395e41f4b71Sopenharmony_ci } 1396e41f4b71Sopenharmony_ci 1397e41f4b71Sopenharmony_ci try { 1398e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1399e41f4b71Sopenharmony_ci let rawData = [0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 1400e41f4b71Sopenharmony_ci 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10]; // MUST be 16 bytes, change it to be correct data. 1401e41f4b71Sopenharmony_ci mifareClassic.writeSingleBlock(blockIndex, rawData, (err : BusinessError)=> { 1402e41f4b71Sopenharmony_ci if (err) { 1403e41f4b71Sopenharmony_ci console.error("mifareClassic writeSingleBlock AsyncCallback err Code:" + 1404e41f4b71Sopenharmony_ci "${err.code}, message: ${err.message}"); 1405e41f4b71Sopenharmony_ci } else { 1406e41f4b71Sopenharmony_ci console.info("mifareClassic writeSingleBlock AsyncCallback success."); 1407e41f4b71Sopenharmony_ci } 1408e41f4b71Sopenharmony_ci }); 1409e41f4b71Sopenharmony_ci } catch (businessError) { 1410e41f4b71Sopenharmony_ci console.error("mifareClassic writeSingleBlock AsyncCallback catch Code: ${(businessError as Businsess).code}, " + 1411e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1412e41f4b71Sopenharmony_ci } 1413e41f4b71Sopenharmony_ci} 1414e41f4b71Sopenharmony_ci``` 1415e41f4b71Sopenharmony_ci 1416e41f4b71Sopenharmony_ci### MifareClassicTag.incrementBlock<sup>9+</sup> 1417e41f4b71Sopenharmony_ci 1418e41f4b71Sopenharmony_ciincrementBlock(blockIndex: number, value: number): Promise\<void> 1419e41f4b71Sopenharmony_ci 1420e41f4b71Sopenharmony_ci对指定块的内容,增加指定的数值,并将结果存储在内部传输缓冲器中。使用Promise方式作为异步方法。 1421e41f4b71Sopenharmony_ci 1422e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1423e41f4b71Sopenharmony_ci 1424e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1425e41f4b71Sopenharmony_ci 1426e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1427e41f4b71Sopenharmony_ci 1428e41f4b71Sopenharmony_ci**参数:** 1429e41f4b71Sopenharmony_ci 1430e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1431e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1432e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 要指定增加的块索引,从0开始。 | 1433e41f4b71Sopenharmony_ci| value | number | 是 | 要指定增加的数据,非负数。 | 1434e41f4b71Sopenharmony_ci 1435e41f4b71Sopenharmony_ci**返回值:** 1436e41f4b71Sopenharmony_ci 1437e41f4b71Sopenharmony_ci| 类型 | 说明 | 1438e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 1439e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1440e41f4b71Sopenharmony_ci 1441e41f4b71Sopenharmony_ci**错误码:** 1442e41f4b71Sopenharmony_ci 1443e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1444e41f4b71Sopenharmony_ci 1445e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1446e41f4b71Sopenharmony_ci| ------- | -------| 1447e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1448e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1449e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1450e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1451e41f4b71Sopenharmony_ci 1452e41f4b71Sopenharmony_ci**示例:** 1453e41f4b71Sopenharmony_ci 1454e41f4b71Sopenharmony_ci```js 1455e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1456e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1457e41f4b71Sopenharmony_ci 1458e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1459e41f4b71Sopenharmony_ci 1460e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1461e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1462e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1463e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1464e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1465e41f4b71Sopenharmony_ci return; 1466e41f4b71Sopenharmony_ci } 1467e41f4b71Sopenharmony_ci } 1468e41f4b71Sopenharmony_ci 1469e41f4b71Sopenharmony_ci try { 1470e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1471e41f4b71Sopenharmony_ci let value = 0x20; // change it to be correct data. 1472e41f4b71Sopenharmony_ci mifareClassic.incrementBlock(blockIndex, value).then(() => { 1473e41f4b71Sopenharmony_ci console.info("mifareClassic incrementBlock Promise success."); 1474e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 1475e41f4b71Sopenharmony_ci console.error("mifareClassic incrementBlock Promise err Code: ${err.code}, message: ${err.message}"); 1476e41f4b71Sopenharmony_ci }); 1477e41f4b71Sopenharmony_ci } catch (businessError) { 1478e41f4b71Sopenharmony_ci console.error("mifareClassic incrementBlock Promise catch Code: ${(businessError as Businsess).code}, " + 1479e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1480e41f4b71Sopenharmony_ci } 1481e41f4b71Sopenharmony_ci} 1482e41f4b71Sopenharmony_ci``` 1483e41f4b71Sopenharmony_ci 1484e41f4b71Sopenharmony_ci### MifareClassicTag.incrementBlock<sup>9+</sup> 1485e41f4b71Sopenharmony_ci 1486e41f4b71Sopenharmony_ciincrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void>): void 1487e41f4b71Sopenharmony_ci 1488e41f4b71Sopenharmony_ci对指定块的内容,增加指定的数值,并将结果存储在内部传输缓冲器中。使用AsyncCallback方式作为异步方法。 1489e41f4b71Sopenharmony_ci 1490e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1491e41f4b71Sopenharmony_ci 1492e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1493e41f4b71Sopenharmony_ci 1494e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1495e41f4b71Sopenharmony_ci 1496e41f4b71Sopenharmony_ci**参数:** 1497e41f4b71Sopenharmony_ci 1498e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1499e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1500e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 要被运算的块索引,从0开始。 | 1501e41f4b71Sopenharmony_ci| value | number | 是 | 要增加的数值,非负数。 | 1502e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 以callback形式异步返回块操作结果。。 | 1503e41f4b71Sopenharmony_ci 1504e41f4b71Sopenharmony_ci**错误码:** 1505e41f4b71Sopenharmony_ci 1506e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1507e41f4b71Sopenharmony_ci 1508e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1509e41f4b71Sopenharmony_ci| ------- | -------| 1510e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1511e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1512e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1513e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1514e41f4b71Sopenharmony_ci 1515e41f4b71Sopenharmony_ci**示例:** 1516e41f4b71Sopenharmony_ci 1517e41f4b71Sopenharmony_ci```js 1518e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1519e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1520e41f4b71Sopenharmony_ci 1521e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1522e41f4b71Sopenharmony_ci 1523e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1524e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1525e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1526e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1527e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1528e41f4b71Sopenharmony_ci return; 1529e41f4b71Sopenharmony_ci } 1530e41f4b71Sopenharmony_ci } 1531e41f4b71Sopenharmony_ci 1532e41f4b71Sopenharmony_ci try { 1533e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1534e41f4b71Sopenharmony_ci let value = 0x20; // change it to be correct data. 1535e41f4b71Sopenharmony_ci mifareClassic.incrementBlock(blockIndex, value, (err : BusinessError)=> { 1536e41f4b71Sopenharmony_ci if (err) { 1537e41f4b71Sopenharmony_ci console.error("mifareClassic incrementBlock AsyncCallback err Code: ${err.code}, message: ${err.message}"); 1538e41f4b71Sopenharmony_ci } else { 1539e41f4b71Sopenharmony_ci console.info("mifareClassic incrementBlock AsyncCallback success."); 1540e41f4b71Sopenharmony_ci } 1541e41f4b71Sopenharmony_ci }); 1542e41f4b71Sopenharmony_ci } catch (businessError) { 1543e41f4b71Sopenharmony_ci console.error("mifareClassic incrementBlock AsyncCallback catch businessError Code: ${(businessError as Businsess).code}, " + 1544e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1545e41f4b71Sopenharmony_ci } 1546e41f4b71Sopenharmony_ci} 1547e41f4b71Sopenharmony_ci``` 1548e41f4b71Sopenharmony_ci 1549e41f4b71Sopenharmony_ci### MifareClassicTag.decrementBlock<sup>9+</sup> 1550e41f4b71Sopenharmony_ci 1551e41f4b71Sopenharmony_cidecrementBlock(blockIndex: number, value: number): Promise\<void> 1552e41f4b71Sopenharmony_ci 1553e41f4b71Sopenharmony_ci对指定块的内容,减少指定的数值,并将结果存储在内部传输缓冲器中。使用Promise方式作为异步方法。 1554e41f4b71Sopenharmony_ci 1555e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1556e41f4b71Sopenharmony_ci 1557e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1558e41f4b71Sopenharmony_ci 1559e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1560e41f4b71Sopenharmony_ci 1561e41f4b71Sopenharmony_ci**参数:** 1562e41f4b71Sopenharmony_ci 1563e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1564e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1565e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 要被运算的块索引,从0开始。 | 1566e41f4b71Sopenharmony_ci| value | number | 是 | 要减少的数值,非负数。 | 1567e41f4b71Sopenharmony_ci 1568e41f4b71Sopenharmony_ci**返回值:** 1569e41f4b71Sopenharmony_ci 1570e41f4b71Sopenharmony_ci| 类型 | 说明 | 1571e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 1572e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1573e41f4b71Sopenharmony_ci 1574e41f4b71Sopenharmony_ci**错误码:** 1575e41f4b71Sopenharmony_ci 1576e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1577e41f4b71Sopenharmony_ci 1578e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1579e41f4b71Sopenharmony_ci| ------- | -------| 1580e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1581e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1582e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1583e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1584e41f4b71Sopenharmony_ci 1585e41f4b71Sopenharmony_ci**示例:** 1586e41f4b71Sopenharmony_ci 1587e41f4b71Sopenharmony_ci```js 1588e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1589e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1590e41f4b71Sopenharmony_ci 1591e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1592e41f4b71Sopenharmony_ci 1593e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1594e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1595e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1596e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1597e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1598e41f4b71Sopenharmony_ci return; 1599e41f4b71Sopenharmony_ci } 1600e41f4b71Sopenharmony_ci } 1601e41f4b71Sopenharmony_ci 1602e41f4b71Sopenharmony_ci try { 1603e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1604e41f4b71Sopenharmony_ci let value = 0x20; // change it to be correct data. 1605e41f4b71Sopenharmony_ci mifareClassic.decrementBlock(blockIndex, value).then(() => { 1606e41f4b71Sopenharmony_ci console.info("mifareClassic decrementBlock Promise success."); 1607e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 1608e41f4b71Sopenharmony_ci console.error("mifareClassic decrementBlock Promise errCode: ${err.code}, message: ${err.message}"); 1609e41f4b71Sopenharmony_ci }); 1610e41f4b71Sopenharmony_ci } catch (businessError) { 1611e41f4b71Sopenharmony_ci console.error("mifareClassic decrementBlock Promise catch businessError: Code: ${(businessError as Businsess).code}, " + 1612e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1613e41f4b71Sopenharmony_ci } 1614e41f4b71Sopenharmony_ci} 1615e41f4b71Sopenharmony_ci``` 1616e41f4b71Sopenharmony_ci 1617e41f4b71Sopenharmony_ci### MifareClassicTag.decrementBlock<sup>9+</sup> 1618e41f4b71Sopenharmony_ci 1619e41f4b71Sopenharmony_cidecrementBlock(blockIndex: number, value: number, callback: AsyncCallback\<void>): void 1620e41f4b71Sopenharmony_ci 1621e41f4b71Sopenharmony_ci对指定块的内容,减少指定的数值。使用AsyncCallback方式作为异步方法。 1622e41f4b71Sopenharmony_ci 1623e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1624e41f4b71Sopenharmony_ci 1625e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1626e41f4b71Sopenharmony_ci 1627e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1628e41f4b71Sopenharmony_ci 1629e41f4b71Sopenharmony_ci**参数:** 1630e41f4b71Sopenharmony_ci 1631e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1632e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1633e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 要被运算的块索引,从0开始。 | 1634e41f4b71Sopenharmony_ci| value | number | 是 | 要减少的数值,非负数。 | 1635e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 以callback形式异步返回块操作结果。 | 1636e41f4b71Sopenharmony_ci 1637e41f4b71Sopenharmony_ci**错误码:** 1638e41f4b71Sopenharmony_ci 1639e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1640e41f4b71Sopenharmony_ci 1641e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1642e41f4b71Sopenharmony_ci| ------- | -------| 1643e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1644e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1645e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1646e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1647e41f4b71Sopenharmony_ci 1648e41f4b71Sopenharmony_ci**示例:** 1649e41f4b71Sopenharmony_ci 1650e41f4b71Sopenharmony_ci```js 1651e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1652e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1653e41f4b71Sopenharmony_ci 1654e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1655e41f4b71Sopenharmony_ci 1656e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1657e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1658e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1659e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1660e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1661e41f4b71Sopenharmony_ci return; 1662e41f4b71Sopenharmony_ci } 1663e41f4b71Sopenharmony_ci } 1664e41f4b71Sopenharmony_ci 1665e41f4b71Sopenharmony_ci try { 1666e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1667e41f4b71Sopenharmony_ci let value = 0x20; // change it to be correct data. 1668e41f4b71Sopenharmony_ci mifareClassic.decrementBlock(blockIndex, value, (err : BusinessError)=> { 1669e41f4b71Sopenharmony_ci if (err) { 1670e41f4b71Sopenharmony_ci console.error("mifareClassic decrementBlock AsyncCallback errCode:" + 1671e41f4b71Sopenharmony_ci "${err.code}, message: ${err.message}"); 1672e41f4b71Sopenharmony_ci } else { 1673e41f4b71Sopenharmony_ci console.info("mifareClassic decrementBlock AsyncCallback success."); 1674e41f4b71Sopenharmony_ci } 1675e41f4b71Sopenharmony_ci }); 1676e41f4b71Sopenharmony_ci } catch (businessError) { 1677e41f4b71Sopenharmony_ci console.error("mifareClassic decrementBlock AsyncCallback catch Code: ${(businessError as Businsess).code}, " + 1678e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1679e41f4b71Sopenharmony_ci } 1680e41f4b71Sopenharmony_ci} 1681e41f4b71Sopenharmony_ci``` 1682e41f4b71Sopenharmony_ci 1683e41f4b71Sopenharmony_ci### MifareClassicTag.transferToBlock<sup>9+</sup> 1684e41f4b71Sopenharmony_ci 1685e41f4b71Sopenharmony_citransferToBlock(blockIndex: number): Promise\<void> 1686e41f4b71Sopenharmony_ci 1687e41f4b71Sopenharmony_ci将临时寄存器的值转移到指定的块。使用Promise方式作为异步方法。 1688e41f4b71Sopenharmony_ci 1689e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1690e41f4b71Sopenharmony_ci 1691e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1692e41f4b71Sopenharmony_ci 1693e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1694e41f4b71Sopenharmony_ci 1695e41f4b71Sopenharmony_ci**参数:** 1696e41f4b71Sopenharmony_ci 1697e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1698e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1699e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 被操作的块的索引,从0开始。 | 1700e41f4b71Sopenharmony_ci 1701e41f4b71Sopenharmony_ci**返回值:** 1702e41f4b71Sopenharmony_ci 1703e41f4b71Sopenharmony_ci| 类型 | 说明 | 1704e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 1705e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1706e41f4b71Sopenharmony_ci 1707e41f4b71Sopenharmony_ci**错误码:** 1708e41f4b71Sopenharmony_ci 1709e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1710e41f4b71Sopenharmony_ci 1711e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1712e41f4b71Sopenharmony_ci| ------- | -------| 1713e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1714e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1715e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1716e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1717e41f4b71Sopenharmony_ci 1718e41f4b71Sopenharmony_ci**示例:** 1719e41f4b71Sopenharmony_ci 1720e41f4b71Sopenharmony_ci```js 1721e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1722e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1723e41f4b71Sopenharmony_ci 1724e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1725e41f4b71Sopenharmony_ci 1726e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1727e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1728e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1729e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1730e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1731e41f4b71Sopenharmony_ci return; 1732e41f4b71Sopenharmony_ci } 1733e41f4b71Sopenharmony_ci } 1734e41f4b71Sopenharmony_ci 1735e41f4b71Sopenharmony_ci try { 1736e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1737e41f4b71Sopenharmony_ci mifareClassic.transferToBlock(blockIndex).then(() => { 1738e41f4b71Sopenharmony_ci console.info("mifareClassic transferToBlock Promise success."); 1739e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 1740e41f4b71Sopenharmony_ci console.error("mifareClassic transferToBlock Promise err Code: ${err.code}, message: ${err.message}"); 1741e41f4b71Sopenharmony_ci }); 1742e41f4b71Sopenharmony_ci } catch (businessError) { 1743e41f4b71Sopenharmony_ci console.error("mifareClassic transferToBlock Promise catch Code: ${(businessError as Businsess).code}, " + 1744e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1745e41f4b71Sopenharmony_ci } 1746e41f4b71Sopenharmony_ci} 1747e41f4b71Sopenharmony_ci``` 1748e41f4b71Sopenharmony_ci 1749e41f4b71Sopenharmony_ci### MifareClassicTag.transferToBlock<sup>9+</sup> 1750e41f4b71Sopenharmony_ci 1751e41f4b71Sopenharmony_citransferToBlock(blockIndex: number, callback: AsyncCallback\<void>): void 1752e41f4b71Sopenharmony_ci 1753e41f4b71Sopenharmony_ci将临时寄存器的值转移到指定的块。使用AsyncCallback方式作为异步方法。 1754e41f4b71Sopenharmony_ci 1755e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1756e41f4b71Sopenharmony_ci 1757e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1758e41f4b71Sopenharmony_ci 1759e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1760e41f4b71Sopenharmony_ci 1761e41f4b71Sopenharmony_ci**参数:** 1762e41f4b71Sopenharmony_ci 1763e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1764e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1765e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 被操作的块的索引,从0开始。 | 1766e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 以callback形式异步返回块操作结果。 | 1767e41f4b71Sopenharmony_ci 1768e41f4b71Sopenharmony_ci**错误码:** 1769e41f4b71Sopenharmony_ci 1770e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1771e41f4b71Sopenharmony_ci 1772e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1773e41f4b71Sopenharmony_ci| ------- | -------| 1774e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1775e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1776e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1777e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1778e41f4b71Sopenharmony_ci 1779e41f4b71Sopenharmony_ci**示例:** 1780e41f4b71Sopenharmony_ci 1781e41f4b71Sopenharmony_ci```js 1782e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1783e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1784e41f4b71Sopenharmony_ci 1785e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1786e41f4b71Sopenharmony_ci 1787e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1788e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1789e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1790e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1791e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1792e41f4b71Sopenharmony_ci return; 1793e41f4b71Sopenharmony_ci } 1794e41f4b71Sopenharmony_ci } 1795e41f4b71Sopenharmony_ci 1796e41f4b71Sopenharmony_ci try { 1797e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1798e41f4b71Sopenharmony_ci mifareClassic.transferToBlock(blockIndex, (err : BusinessError)=> { 1799e41f4b71Sopenharmony_ci if (err) { 1800e41f4b71Sopenharmony_ci console.error("mifareClassic transferToBlock AsyncCallback errCode: ${err.code}," + 1801e41f4b71Sopenharmony_ci "message: ${err.message}"); 1802e41f4b71Sopenharmony_ci } else { 1803e41f4b71Sopenharmony_ci console.info("mifareClassic transferToBlock AsyncCallback success."); 1804e41f4b71Sopenharmony_ci } 1805e41f4b71Sopenharmony_ci }); 1806e41f4b71Sopenharmony_ci } catch (businessError) { 1807e41f4b71Sopenharmony_ci console.error("mifareClassic transferToBlock AsyncCallback catch Code: ${(businessError as Businsess).code}, " + 1808e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1809e41f4b71Sopenharmony_ci } 1810e41f4b71Sopenharmony_ci} 1811e41f4b71Sopenharmony_ci``` 1812e41f4b71Sopenharmony_ci 1813e41f4b71Sopenharmony_ci### MifareClassicTag.restoreFromBlock<sup>9+</sup> 1814e41f4b71Sopenharmony_ci 1815e41f4b71Sopenharmony_cirestoreFromBlock(blockIndex: number): Promise\<void> 1816e41f4b71Sopenharmony_ci 1817e41f4b71Sopenharmony_ci将指定块的值复制到临时寄存器。使用Promise方式作为异步方法。 1818e41f4b71Sopenharmony_ci 1819e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1820e41f4b71Sopenharmony_ci 1821e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1822e41f4b71Sopenharmony_ci 1823e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1824e41f4b71Sopenharmony_ci 1825e41f4b71Sopenharmony_ci**参数:** 1826e41f4b71Sopenharmony_ci 1827e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1828e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1829e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 被操作的块的索引,从0开始。| 1830e41f4b71Sopenharmony_ci 1831e41f4b71Sopenharmony_ci**返回值:** 1832e41f4b71Sopenharmony_ci 1833e41f4b71Sopenharmony_ci| 类型 | 说明 | 1834e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 1835e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 1836e41f4b71Sopenharmony_ci 1837e41f4b71Sopenharmony_ci**错误码:** 1838e41f4b71Sopenharmony_ci 1839e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1840e41f4b71Sopenharmony_ci 1841e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1842e41f4b71Sopenharmony_ci| ------- | -------| 1843e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1844e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1845e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1846e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1847e41f4b71Sopenharmony_ci 1848e41f4b71Sopenharmony_ci**示例:** 1849e41f4b71Sopenharmony_ci 1850e41f4b71Sopenharmony_ci```js 1851e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1852e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1853e41f4b71Sopenharmony_ci 1854e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1855e41f4b71Sopenharmony_ci 1856e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1857e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1858e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1859e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1860e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1861e41f4b71Sopenharmony_ci return; 1862e41f4b71Sopenharmony_ci } 1863e41f4b71Sopenharmony_ci } 1864e41f4b71Sopenharmony_ci 1865e41f4b71Sopenharmony_ci try { 1866e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1867e41f4b71Sopenharmony_ci mifareClassic.restoreFromBlock(blockIndex).then(() => { 1868e41f4b71Sopenharmony_ci console.info("mifareClassic restoreFromBlock Promise success."); 1869e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 1870e41f4b71Sopenharmony_ci console.error("mifareClassic restoreFromBlock Promise errCode: ${err.code}, message: ${err.message}"); 1871e41f4b71Sopenharmony_ci }); 1872e41f4b71Sopenharmony_ci } catch (businessError) { 1873e41f4b71Sopenharmony_ci console.error("mifareClassic restoreFromBlock Promise catch businessError Code: ${(businessError as Businsess).code}," + 1874e41f4b71Sopenharmony_ci " message: ${(businessError as Businsess).message}"); 1875e41f4b71Sopenharmony_ci } 1876e41f4b71Sopenharmony_ci} 1877e41f4b71Sopenharmony_ci``` 1878e41f4b71Sopenharmony_ci 1879e41f4b71Sopenharmony_ci### MifareClassicTag.restoreFromBlock<sup>9+</sup> 1880e41f4b71Sopenharmony_ci 1881e41f4b71Sopenharmony_cirestoreFromBlock(blockIndex: number, callback: AsyncCallback\<void>): void 1882e41f4b71Sopenharmony_ci 1883e41f4b71Sopenharmony_ci将指定块的值复制到临时寄存器。使用AsyncCallback方式作为异步方法。 1884e41f4b71Sopenharmony_ci 1885e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 1886e41f4b71Sopenharmony_ci 1887e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1888e41f4b71Sopenharmony_ci 1889e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1890e41f4b71Sopenharmony_ci 1891e41f4b71Sopenharmony_ci**参数:** 1892e41f4b71Sopenharmony_ci 1893e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1894e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1895e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 被操作的块的索引,从0开始。 | 1896e41f4b71Sopenharmony_ci| callback | AsyncCallback\<void> | 是 | 以callback形式异步返回块操作结果。| 1897e41f4b71Sopenharmony_ci 1898e41f4b71Sopenharmony_ci**错误码:** 1899e41f4b71Sopenharmony_ci 1900e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1901e41f4b71Sopenharmony_ci 1902e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1903e41f4b71Sopenharmony_ci| ------- | -------| 1904e41f4b71Sopenharmony_ci| 201 | Permission denied. | 1905e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1906e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 1907e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 1908e41f4b71Sopenharmony_ci 1909e41f4b71Sopenharmony_ci**示例:** 1910e41f4b71Sopenharmony_ci 1911e41f4b71Sopenharmony_ci```js 1912e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1913e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1914e41f4b71Sopenharmony_ci 1915e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1916e41f4b71Sopenharmony_ci 1917e41f4b71Sopenharmony_cifunction nfcTechDemo() { 1918e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 1919e41f4b71Sopenharmony_ci if (!mifareClassic.isTagConnected()) { 1920e41f4b71Sopenharmony_ci if (!mifareClassic.connectTag()) { 1921e41f4b71Sopenharmony_ci console.error("mifareClassic connectTag failed."); 1922e41f4b71Sopenharmony_ci return; 1923e41f4b71Sopenharmony_ci } 1924e41f4b71Sopenharmony_ci } 1925e41f4b71Sopenharmony_ci 1926e41f4b71Sopenharmony_ci try { 1927e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 1928e41f4b71Sopenharmony_ci mifareClassic.restoreFromBlock(blockIndex, (err : BusinessError)=> { 1929e41f4b71Sopenharmony_ci if (err) { 1930e41f4b71Sopenharmony_ci console.error("mifareClassic restoreFromBlock AsyncCallback err Code: ${err.code}," + 1931e41f4b71Sopenharmony_ci " message: ${err.message}"); 1932e41f4b71Sopenharmony_ci } else { 1933e41f4b71Sopenharmony_ci console.info("mifareClassic restoreFromBlock AsyncCallback success."); 1934e41f4b71Sopenharmony_ci } 1935e41f4b71Sopenharmony_ci }); 1936e41f4b71Sopenharmony_ci } catch (businessError) { 1937e41f4b71Sopenharmony_ci console.error("mifareClassic restoreFromBlock AsyncCallback catch Code: ${(businessError as Businsess).code}, " + 1938e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 1939e41f4b71Sopenharmony_ci } 1940e41f4b71Sopenharmony_ci} 1941e41f4b71Sopenharmony_ci``` 1942e41f4b71Sopenharmony_ci 1943e41f4b71Sopenharmony_ci### MifareClassicTag.getSectorCount<sup>9+</sup> 1944e41f4b71Sopenharmony_ci 1945e41f4b71Sopenharmony_cigetSectorCount(): number 1946e41f4b71Sopenharmony_ci 1947e41f4b71Sopenharmony_ci获取MIFARE Classic标签中的扇区数。 1948e41f4b71Sopenharmony_ci 1949e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1950e41f4b71Sopenharmony_ci 1951e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1952e41f4b71Sopenharmony_ci 1953e41f4b71Sopenharmony_ci**返回值:** 1954e41f4b71Sopenharmony_ci 1955e41f4b71Sopenharmony_ci| **类型** | **说明** | 1956e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 1957e41f4b71Sopenharmony_ci| number | 标签中的扇区数量。| 1958e41f4b71Sopenharmony_ci 1959e41f4b71Sopenharmony_ci**示例:** 1960e41f4b71Sopenharmony_ci 1961e41f4b71Sopenharmony_ci```js 1962e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 1963e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 1964e41f4b71Sopenharmony_ci 1965e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 1966e41f4b71Sopenharmony_cilet sectorCount : number = mifareClassic.getSectorCount(); 1967e41f4b71Sopenharmony_ciconsole.info("mifareClassic sectorCount: " + sectorCount); 1968e41f4b71Sopenharmony_ci``` 1969e41f4b71Sopenharmony_ci 1970e41f4b71Sopenharmony_ci### MifareClassicTag.getBlockCountInSector<sup>9+</sup> 1971e41f4b71Sopenharmony_ci 1972e41f4b71Sopenharmony_cigetBlockCountInSector(sectorIndex: number): number 1973e41f4b71Sopenharmony_ci 1974e41f4b71Sopenharmony_ci获取指定扇区中的块数。 1975e41f4b71Sopenharmony_ci 1976e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 1977e41f4b71Sopenharmony_ci 1978e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 1979e41f4b71Sopenharmony_ci 1980e41f4b71Sopenharmony_ci**参数:** 1981e41f4b71Sopenharmony_ci 1982e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 1983e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 1984e41f4b71Sopenharmony_ci| sectorIndex | number | 是 | 扇区序号,从0开始。| 1985e41f4b71Sopenharmony_ci 1986e41f4b71Sopenharmony_ci**返回值:** 1987e41f4b71Sopenharmony_ci 1988e41f4b71Sopenharmony_ci| **类型** | **说明** | 1989e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 1990e41f4b71Sopenharmony_ci| number | 该扇区内的块数量。| 1991e41f4b71Sopenharmony_ci 1992e41f4b71Sopenharmony_ci**错误码:** 1993e41f4b71Sopenharmony_ci 1994e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 1995e41f4b71Sopenharmony_ci 1996e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 1997e41f4b71Sopenharmony_ci| ------- | -------| 1998e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 1999e41f4b71Sopenharmony_ci 2000e41f4b71Sopenharmony_ci**示例:** 2001e41f4b71Sopenharmony_ci 2002e41f4b71Sopenharmony_ci```js 2003e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2004e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2005e41f4b71Sopenharmony_ci 2006e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 2007e41f4b71Sopenharmony_ci 2008e41f4b71Sopenharmony_citry { 2009e41f4b71Sopenharmony_ci let sectorIndex = 1; // change it to be correct index. 2010e41f4b71Sopenharmony_ci let blockCnt : number = mifareClassic.getBlockCountInSector(sectorIndex); 2011e41f4b71Sopenharmony_ci console.info("mifareClassic blockCnt: " + blockCnt); 2012e41f4b71Sopenharmony_ci} catch (businessError) { 2013e41f4b71Sopenharmony_ci console.error("mifareClassic getBlockCountInSector catch businessError Code: ${(businessError as Businsess).code}, " + 2014e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2015e41f4b71Sopenharmony_ci} 2016e41f4b71Sopenharmony_ci``` 2017e41f4b71Sopenharmony_ci 2018e41f4b71Sopenharmony_ci### MifareClassicTag.getType<sup>9+</sup> 2019e41f4b71Sopenharmony_ci 2020e41f4b71Sopenharmony_cigetType(): [tag.MifareClassicType](js-apis-nfcTag.md#mifareclassictype9) 2021e41f4b71Sopenharmony_ci 2022e41f4b71Sopenharmony_ci获取MIFARE Classic标签的类型。 2023e41f4b71Sopenharmony_ci 2024e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2025e41f4b71Sopenharmony_ci 2026e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2027e41f4b71Sopenharmony_ci 2028e41f4b71Sopenharmony_ci**返回值:** 2029e41f4b71Sopenharmony_ci 2030e41f4b71Sopenharmony_ci| **类型** | **说明** | 2031e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 2032e41f4b71Sopenharmony_ci| [tag.MifareClassicType](js-apis-nfcTag.md#mifareclassictype9) | MifareClassic标签的类型。| 2033e41f4b71Sopenharmony_ci 2034e41f4b71Sopenharmony_ci**示例:** 2035e41f4b71Sopenharmony_ci 2036e41f4b71Sopenharmony_ci```js 2037e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2038e41f4b71Sopenharmony_ci 2039e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 2040e41f4b71Sopenharmony_cilet getType : tag.MifareClassicType = mifareClassic.getType(); 2041e41f4b71Sopenharmony_ciconsole.info("mifareClassic getType: " + getType); 2042e41f4b71Sopenharmony_ci``` 2043e41f4b71Sopenharmony_ci 2044e41f4b71Sopenharmony_ci### MifareClassicTag.getTagSize<sup>9+</sup> 2045e41f4b71Sopenharmony_ci 2046e41f4b71Sopenharmony_cigetTagSize(): number 2047e41f4b71Sopenharmony_ci 2048e41f4b71Sopenharmony_ci获取标签的存储空间大小,具体请参见[MifareClassicSize](js-apis-nfcTag.md#mifareclassicsize9)。 2049e41f4b71Sopenharmony_ci 2050e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2051e41f4b71Sopenharmony_ci 2052e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2053e41f4b71Sopenharmony_ci 2054e41f4b71Sopenharmony_ci**返回值:** 2055e41f4b71Sopenharmony_ci 2056e41f4b71Sopenharmony_ci| **类型** | **说明** | 2057e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 2058e41f4b71Sopenharmony_ci| number | 标签的大小,单位为字节,请参见[MifareClassicSize](js-apis-nfcTag.md#mifareclassicsize9)。| 2059e41f4b71Sopenharmony_ci 2060e41f4b71Sopenharmony_ci**示例:** 2061e41f4b71Sopenharmony_ci 2062e41f4b71Sopenharmony_ci```js 2063e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2064e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2065e41f4b71Sopenharmony_ci 2066e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 2067e41f4b71Sopenharmony_cilet tagSize : number = mifareClassic.getTagSize(); 2068e41f4b71Sopenharmony_ciconsole.info("mifareClassic tagSize: " + tagSize); 2069e41f4b71Sopenharmony_ci``` 2070e41f4b71Sopenharmony_ci 2071e41f4b71Sopenharmony_ci### MifareClassicTag.isEmulatedTag<sup>9+</sup> 2072e41f4b71Sopenharmony_ci 2073e41f4b71Sopenharmony_ciisEmulatedTag(): boolean 2074e41f4b71Sopenharmony_ci 2075e41f4b71Sopenharmony_ci检查标签是不是被模拟的。 2076e41f4b71Sopenharmony_ci 2077e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2078e41f4b71Sopenharmony_ci 2079e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2080e41f4b71Sopenharmony_ci 2081e41f4b71Sopenharmony_ci**返回值:** 2082e41f4b71Sopenharmony_ci 2083e41f4b71Sopenharmony_ci| **类型** | **说明** | 2084e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 2085e41f4b71Sopenharmony_ci| boolean |检查结果,true: 是;false:否。 | 2086e41f4b71Sopenharmony_ci 2087e41f4b71Sopenharmony_ci**示例:** 2088e41f4b71Sopenharmony_ci 2089e41f4b71Sopenharmony_ci```js 2090e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2091e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2092e41f4b71Sopenharmony_ci 2093e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 2094e41f4b71Sopenharmony_cilet isEmulatedTag : boolean = mifareClassic.isEmulatedTag(); 2095e41f4b71Sopenharmony_ciconsole.info("mifareClassic isEmulatedTag: " + isEmulatedTag); 2096e41f4b71Sopenharmony_ci``` 2097e41f4b71Sopenharmony_ci 2098e41f4b71Sopenharmony_ci### MifareClassicTag.getBlockIndex<sup>9+</sup> 2099e41f4b71Sopenharmony_ci 2100e41f4b71Sopenharmony_cigetBlockIndex(sectorIndex: number): number 2101e41f4b71Sopenharmony_ci 2102e41f4b71Sopenharmony_ci获取特定扇区的第一个块的序号。 2103e41f4b71Sopenharmony_ci 2104e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2105e41f4b71Sopenharmony_ci 2106e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2107e41f4b71Sopenharmony_ci 2108e41f4b71Sopenharmony_ci**参数:** 2109e41f4b71Sopenharmony_ci 2110e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2111e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 2112e41f4b71Sopenharmony_ci| sectorIndex | number | 是 | 扇区序号,从0开始。 | 2113e41f4b71Sopenharmony_ci 2114e41f4b71Sopenharmony_ci**返回值:** 2115e41f4b71Sopenharmony_ci 2116e41f4b71Sopenharmony_ci| **类型** | **说明** | 2117e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 2118e41f4b71Sopenharmony_ci| number | 该扇区内的第一个块的序号,从0开始。 | 2119e41f4b71Sopenharmony_ci 2120e41f4b71Sopenharmony_ci**错误码:** 2121e41f4b71Sopenharmony_ci 2122e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2123e41f4b71Sopenharmony_ci 2124e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2125e41f4b71Sopenharmony_ci| ------- | -------| 2126e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2127e41f4b71Sopenharmony_ci 2128e41f4b71Sopenharmony_ci**示例:** 2129e41f4b71Sopenharmony_ci 2130e41f4b71Sopenharmony_ci```js 2131e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2132e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2133e41f4b71Sopenharmony_ci 2134e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 2135e41f4b71Sopenharmony_ci 2136e41f4b71Sopenharmony_citry { 2137e41f4b71Sopenharmony_ci let sectorIndex = 1; // change it to be correct index. 2138e41f4b71Sopenharmony_ci let blockIndex : number = mifareClassic.getBlockIndex(sectorIndex); 2139e41f4b71Sopenharmony_ci console.info("mifareClassic blockIndex: " + blockIndex); 2140e41f4b71Sopenharmony_ci} catch (businessError) { 2141e41f4b71Sopenharmony_ci console.error("mifareClassic getBlockIndex catch businessError Code: ${(businessError as Businsess).code}, " + 2142e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2143e41f4b71Sopenharmony_ci} 2144e41f4b71Sopenharmony_ci``` 2145e41f4b71Sopenharmony_ci 2146e41f4b71Sopenharmony_ci### MifareClassicTag.getSectorIndex<sup>9+</sup> 2147e41f4b71Sopenharmony_ci 2148e41f4b71Sopenharmony_cigetSectorIndex(blockIndex: number): number 2149e41f4b71Sopenharmony_ci 2150e41f4b71Sopenharmony_ci获取包含指定块号的扇区序号。 2151e41f4b71Sopenharmony_ci 2152e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2153e41f4b71Sopenharmony_ci 2154e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2155e41f4b71Sopenharmony_ci 2156e41f4b71Sopenharmony_ci**参数:** 2157e41f4b71Sopenharmony_ci 2158e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2159e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 2160e41f4b71Sopenharmony_ci| blockIndex | number | 是 | 块序号,从0开始。 | 2161e41f4b71Sopenharmony_ci 2162e41f4b71Sopenharmony_ci**返回值:** 2163e41f4b71Sopenharmony_ci 2164e41f4b71Sopenharmony_ci| **类型** | **说明** | 2165e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 2166e41f4b71Sopenharmony_ci| number | 扇区序号,从0开始。 | 2167e41f4b71Sopenharmony_ci 2168e41f4b71Sopenharmony_ci**错误码:** 2169e41f4b71Sopenharmony_ci 2170e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2171e41f4b71Sopenharmony_ci 2172e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2173e41f4b71Sopenharmony_ci| ------- | -------| 2174e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2175e41f4b71Sopenharmony_ci 2176e41f4b71Sopenharmony_ci**示例:** 2177e41f4b71Sopenharmony_ci 2178e41f4b71Sopenharmony_ci```js 2179e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2180e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2181e41f4b71Sopenharmony_ci 2182e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareClassic' correctly. 2183e41f4b71Sopenharmony_ci 2184e41f4b71Sopenharmony_citry { 2185e41f4b71Sopenharmony_ci let blockIndex = 1; // change it to be correct index. 2186e41f4b71Sopenharmony_ci let sectorIndex : number = mifareClassic.getSectorIndex(blockIndex); 2187e41f4b71Sopenharmony_ci console.info("mifareClassic sectorIndex: " + sectorIndex); 2188e41f4b71Sopenharmony_ci} catch (businessError) { 2189e41f4b71Sopenharmony_ci console.error("mifareClassic getSectorIndex catch businessError Code: ${(businessError as Businsess).code}, " + 2190e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2191e41f4b71Sopenharmony_ci} 2192e41f4b71Sopenharmony_ci``` 2193e41f4b71Sopenharmony_ci 2194e41f4b71Sopenharmony_ci## MifareUltralightTag<sup>9+</sup> 2195e41f4b71Sopenharmony_ci 2196e41f4b71Sopenharmony_ciMifareUltralightTag 提供对MIFARE Ultralight属性和I/O操作的访问,继承自TagSession。 2197e41f4b71Sopenharmony_ci 2198e41f4b71Sopenharmony_ciTagSession是所有NFC Tag技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)。 2199e41f4b71Sopenharmony_ci 2200e41f4b71Sopenharmony_ci以下是MifareUltralightTag的独有接口。 2201e41f4b71Sopenharmony_ci 2202e41f4b71Sopenharmony_ci### MifareUltralightTag.readMultiplePages<sup>9+</sup> 2203e41f4b71Sopenharmony_ci 2204e41f4b71Sopenharmony_cireadMultiplePages(pageIndex: number): Promise\<number[]> 2205e41f4b71Sopenharmony_ci 2206e41f4b71Sopenharmony_ci读取标签的4页数据,共16字节的数据。每个页面数据大小为4字节。使用Promise方式作为异步方法。 2207e41f4b71Sopenharmony_ci 2208e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 2209e41f4b71Sopenharmony_ci 2210e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2211e41f4b71Sopenharmony_ci 2212e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2213e41f4b71Sopenharmony_ci 2214e41f4b71Sopenharmony_ci**参数:** 2215e41f4b71Sopenharmony_ci 2216e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2217e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------------------ | 2218e41f4b71Sopenharmony_ci| pageIndex | number | 是 | 要读取页面的索引,从0开始。 | 2219e41f4b71Sopenharmony_ci 2220e41f4b71Sopenharmony_ci**返回值:** 2221e41f4b71Sopenharmony_ci 2222e41f4b71Sopenharmony_ci| **类型** | **说明** | 2223e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 2224e41f4b71Sopenharmony_ci| Promise\<number[]> | 以Promise形式返回读取的4页的数据,共16字节。 | 2225e41f4b71Sopenharmony_ci 2226e41f4b71Sopenharmony_ci**错误码:** 2227e41f4b71Sopenharmony_ci 2228e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2229e41f4b71Sopenharmony_ci 2230e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2231e41f4b71Sopenharmony_ci| ------- | -------| 2232e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2233e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2234e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 2235e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 2236e41f4b71Sopenharmony_ci 2237e41f4b71Sopenharmony_ci**示例:** 2238e41f4b71Sopenharmony_ci 2239e41f4b71Sopenharmony_ci```js 2240e41f4b71Sopenharmony_ci 2241e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2242e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2243e41f4b71Sopenharmony_ci 2244e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareUltralight' correctly. 2245e41f4b71Sopenharmony_ci 2246e41f4b71Sopenharmony_cifunction nfcTechDemo() { 2247e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 2248e41f4b71Sopenharmony_ci if (!mifareUltralight.isTagConnected()) { 2249e41f4b71Sopenharmony_ci if (!mifareUltralight.connectTag()) { 2250e41f4b71Sopenharmony_ci console.error("mifareUltralight connectTag failed."); 2251e41f4b71Sopenharmony_ci return; 2252e41f4b71Sopenharmony_ci } 2253e41f4b71Sopenharmony_ci } 2254e41f4b71Sopenharmony_ci 2255e41f4b71Sopenharmony_ci try { 2256e41f4b71Sopenharmony_ci let pageIndex = 1; // change it to be correct index. 2257e41f4b71Sopenharmony_ci mifareUltralight.readMultiplePages(pageIndex).then((data : number[]) => { 2258e41f4b71Sopenharmony_ci console.info("mifareUltralight readMultiplePages Promise data = " + data); 2259e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 2260e41f4b71Sopenharmony_ci console.error("mifareUltralight readMultiplePages Promise Code: ${err.code}, message: ${err.message}"); 2261e41f4b71Sopenharmony_ci }); 2262e41f4b71Sopenharmony_ci } catch (businessError) { 2263e41f4b71Sopenharmony_ci console.error("mifareUltralight readMultiplePages Promise catch businessError" + 2264e41f4b71Sopenharmony_ci " Code: ${(businessError as Businsess).code}, message: ${(businessError as Businsess).message}"); 2265e41f4b71Sopenharmony_ci } 2266e41f4b71Sopenharmony_ci} 2267e41f4b71Sopenharmony_ci``` 2268e41f4b71Sopenharmony_ci 2269e41f4b71Sopenharmony_ci### MifareUltralightTag.readMultiplePages<sup>9+</sup> 2270e41f4b71Sopenharmony_ci 2271e41f4b71Sopenharmony_cireadMultiplePages(pageIndex: number, callback: AsyncCallback\<number[]>): void 2272e41f4b71Sopenharmony_ci 2273e41f4b71Sopenharmony_ci读取标签的4页数据,共16字节的数据。每个页面数据大小为4字节。使用AsyncCallback方式作为异步方法。 2274e41f4b71Sopenharmony_ci 2275e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 2276e41f4b71Sopenharmony_ci 2277e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2278e41f4b71Sopenharmony_ci 2279e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2280e41f4b71Sopenharmony_ci 2281e41f4b71Sopenharmony_ci**参数:** 2282e41f4b71Sopenharmony_ci 2283e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2284e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 2285e41f4b71Sopenharmony_ci| pageIndex | number | 是 | 要读取页面的索引,从0开始。 | 2286e41f4b71Sopenharmony_ci| callback | AsyncCallback\<number[]> | 是 | 以callback形式异步返回页操作结果。返回读取到的数据,共16字节。 | 2287e41f4b71Sopenharmony_ci 2288e41f4b71Sopenharmony_ci**错误码:** 2289e41f4b71Sopenharmony_ci 2290e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2291e41f4b71Sopenharmony_ci 2292e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2293e41f4b71Sopenharmony_ci| ------- | -------| 2294e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2295e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2296e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 2297e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 2298e41f4b71Sopenharmony_ci 2299e41f4b71Sopenharmony_ci**示例:** 2300e41f4b71Sopenharmony_ci 2301e41f4b71Sopenharmony_ci```js 2302e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2303e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2304e41f4b71Sopenharmony_ci 2305e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareUltralight' correctly. 2306e41f4b71Sopenharmony_ci 2307e41f4b71Sopenharmony_cifunction nfcTechDemo() { 2308e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 2309e41f4b71Sopenharmony_ci if (!mifareUltralight.isTagConnected()) { 2310e41f4b71Sopenharmony_ci if (!mifareUltralight.connectTag()) { 2311e41f4b71Sopenharmony_ci console.error("mifareUltralight connectTag failed."); 2312e41f4b71Sopenharmony_ci return; 2313e41f4b71Sopenharmony_ci } 2314e41f4b71Sopenharmony_ci } 2315e41f4b71Sopenharmony_ci 2316e41f4b71Sopenharmony_ci try { 2317e41f4b71Sopenharmony_ci let pageIndex = 1; // change it to be correct index. 2318e41f4b71Sopenharmony_ci mifareUltralight.readMultiplePages(pageIndex, (err : BusinessError, data : number[])=> { 2319e41f4b71Sopenharmony_ci if (err) { 2320e41f4b71Sopenharmony_ci console.log("mifareUltralight readMultiplePages AsyncCallback Code: ${err.code}, message: ${err.message}"); 2321e41f4b71Sopenharmony_ci } else { 2322e41f4b71Sopenharmony_ci console.info("mifareUltralight readMultiplePages AsyncCallback data: " + data); 2323e41f4b71Sopenharmony_ci } 2324e41f4b71Sopenharmony_ci }); 2325e41f4b71Sopenharmony_ci } catch (businessError) { 2326e41f4b71Sopenharmony_ci console.error("mifareUltralight readMultiplePages AsyncCallback catch Code: ${(businessError as Businsess).code}, " + 2327e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2328e41f4b71Sopenharmony_ci } 2329e41f4b71Sopenharmony_ci} 2330e41f4b71Sopenharmony_ci``` 2331e41f4b71Sopenharmony_ci 2332e41f4b71Sopenharmony_ci### MifareUltralightTag.writeSinglePage<sup>9+</sup> 2333e41f4b71Sopenharmony_ci 2334e41f4b71Sopenharmony_ciwriteSinglePage(pageIndex: number, data: number[]): Promise\<void> 2335e41f4b71Sopenharmony_ci 2336e41f4b71Sopenharmony_ci写入一页数据,数据大小为4字节。使用Promise方式作为异步方法。 2337e41f4b71Sopenharmony_ci 2338e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 2339e41f4b71Sopenharmony_ci 2340e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2341e41f4b71Sopenharmony_ci 2342e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2343e41f4b71Sopenharmony_ci 2344e41f4b71Sopenharmony_ci**参数:** 2345e41f4b71Sopenharmony_ci 2346e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2347e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 2348e41f4b71Sopenharmony_ci| pageIndex | number | 是 | 要写入页面的索引,从0开始。 | 2349e41f4b71Sopenharmony_ci| data | number[] | 是 | 要写入页面的数据内容,必须是4个字节大小。 | 2350e41f4b71Sopenharmony_ci 2351e41f4b71Sopenharmony_ci**返回值:** 2352e41f4b71Sopenharmony_ci 2353e41f4b71Sopenharmony_ci| 类型 | 说明 | 2354e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 2355e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2356e41f4b71Sopenharmony_ci 2357e41f4b71Sopenharmony_ci**错误码:** 2358e41f4b71Sopenharmony_ci 2359e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2360e41f4b71Sopenharmony_ci 2361e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2362e41f4b71Sopenharmony_ci| ------- | -------| 2363e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2364e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2365e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 2366e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 2367e41f4b71Sopenharmony_ci 2368e41f4b71Sopenharmony_ci**示例:** 2369e41f4b71Sopenharmony_ci 2370e41f4b71Sopenharmony_ci```js 2371e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2372e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2373e41f4b71Sopenharmony_ci 2374e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareUltralight' correctly. 2375e41f4b71Sopenharmony_ci 2376e41f4b71Sopenharmony_cifunction nfcTechDemo() { 2377e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 2378e41f4b71Sopenharmony_ci if (!mifareUltralight.isTagConnected()) { 2379e41f4b71Sopenharmony_ci if (!mifareUltralight.connectTag()) { 2380e41f4b71Sopenharmony_ci console.error("mifareUltralight connectTag failed."); 2381e41f4b71Sopenharmony_ci return; 2382e41f4b71Sopenharmony_ci } 2383e41f4b71Sopenharmony_ci } 2384e41f4b71Sopenharmony_ci 2385e41f4b71Sopenharmony_ci try { 2386e41f4b71Sopenharmony_ci let pageIndex = 1; // change it to be correct index. 2387e41f4b71Sopenharmony_ci let rawData = [0x01, 0x02, 0x03, 0x04]; // MUST be 4 bytes, change it to be correct raw data. 2388e41f4b71Sopenharmony_ci mifareUltralight.writeSinglePage(pageIndex, rawData).then(() => { 2389e41f4b71Sopenharmony_ci console.info("mifareUltralight writeSinglePage Promise success."); 2390e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 2391e41f4b71Sopenharmony_ci console.error("mifareUltralight writeSinglePage Promise err Code: ${err.code}, message: ${err.message}"); 2392e41f4b71Sopenharmony_ci }); 2393e41f4b71Sopenharmony_ci } catch (businessError) { 2394e41f4b71Sopenharmony_ci console.error("mifareUltralight writeSinglePage Promise catch Code: ${(businessError as Businsess).code}, " + 2395e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2396e41f4b71Sopenharmony_ci } 2397e41f4b71Sopenharmony_ci} 2398e41f4b71Sopenharmony_ci``` 2399e41f4b71Sopenharmony_ci 2400e41f4b71Sopenharmony_ci### MifareUltralightTag.writeSinglePage<sup>9+</sup> 2401e41f4b71Sopenharmony_ci 2402e41f4b71Sopenharmony_ciwriteSinglePage(pageIndex: number, data: number[], callback: AsyncCallback\<void>): void 2403e41f4b71Sopenharmony_ci 2404e41f4b71Sopenharmony_ci写入一页数据,数据大小为4字节。使用AsyncCallback方式作为异步方法。 2405e41f4b71Sopenharmony_ci 2406e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 2407e41f4b71Sopenharmony_ci 2408e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2409e41f4b71Sopenharmony_ci 2410e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2411e41f4b71Sopenharmony_ci 2412e41f4b71Sopenharmony_ci**参数:** 2413e41f4b71Sopenharmony_ci 2414e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2415e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | ------------------------ | 2416e41f4b71Sopenharmony_ci| pageIndex | number | 是 | 要写入页面的索引,从0开始。 | 2417e41f4b71Sopenharmony_ci| data | number[] | 是 | 要写入页面的数据内容,必须是4个字节大小。 | 2418e41f4b71Sopenharmony_ci| callback|AsyncCallback\<void> |是| 以callback形式异步返回页操作结果。 | 2419e41f4b71Sopenharmony_ci 2420e41f4b71Sopenharmony_ci**错误码:** 2421e41f4b71Sopenharmony_ci 2422e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2423e41f4b71Sopenharmony_ci 2424e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2425e41f4b71Sopenharmony_ci| ------- | -------| 2426e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2427e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2428e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 2429e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 2430e41f4b71Sopenharmony_ci 2431e41f4b71Sopenharmony_ci**示例:** 2432e41f4b71Sopenharmony_ci 2433e41f4b71Sopenharmony_ci```js 2434e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2435e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2436e41f4b71Sopenharmony_ci 2437e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareUltralight' correctly. 2438e41f4b71Sopenharmony_ci 2439e41f4b71Sopenharmony_cifunction nfcTechDemo() { 2440e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 2441e41f4b71Sopenharmony_ci if (!mifareUltralight.isTagConnected()) { 2442e41f4b71Sopenharmony_ci if (!mifareUltralight.connectTag()) { 2443e41f4b71Sopenharmony_ci console.error("mifareUltralight connectTag failed."); 2444e41f4b71Sopenharmony_ci return; 2445e41f4b71Sopenharmony_ci } 2446e41f4b71Sopenharmony_ci } 2447e41f4b71Sopenharmony_ci 2448e41f4b71Sopenharmony_ci try { 2449e41f4b71Sopenharmony_ci let pageIndex = 1; // change it to be correct index. 2450e41f4b71Sopenharmony_ci let rawData = [0x01, 0x02, 0x03, 0x04]; // MUST be 4 bytes, change it to be correct raw data. 2451e41f4b71Sopenharmony_ci mifareUltralight.writeSinglePage(pageIndex, rawData, (err : BusinessError)=> { 2452e41f4b71Sopenharmony_ci if (err) { 2453e41f4b71Sopenharmony_ci console.error("mifareUltralight writeSinglePage AsyncCallback Code: ${err.code}," + 2454e41f4b71Sopenharmony_ci "message: ${err.message}"); 2455e41f4b71Sopenharmony_ci } else { 2456e41f4b71Sopenharmony_ci console.info("mifareUltralight writeSinglePage AsyncCallback success."); 2457e41f4b71Sopenharmony_ci } 2458e41f4b71Sopenharmony_ci }); 2459e41f4b71Sopenharmony_ci } catch (businessError) { 2460e41f4b71Sopenharmony_ci console.error("mifareUltralight writeSinglePage AsyncCallback catch Code: ${(businessError as Businsess).code}, " + 2461e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2462e41f4b71Sopenharmony_ci } 2463e41f4b71Sopenharmony_ci} 2464e41f4b71Sopenharmony_ci``` 2465e41f4b71Sopenharmony_ci 2466e41f4b71Sopenharmony_ci### MifareUltralightTag.getType<sup>9+</sup> 2467e41f4b71Sopenharmony_ci 2468e41f4b71Sopenharmony_cigetType(): [tag.MifareUltralightType](js-apis-nfcTag.md#mifareultralighttype9) 2469e41f4b71Sopenharmony_ci 2470e41f4b71Sopenharmony_ci获取MIFARE Ultralight标签的类型。 2471e41f4b71Sopenharmony_ci 2472e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2473e41f4b71Sopenharmony_ci 2474e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2475e41f4b71Sopenharmony_ci 2476e41f4b71Sopenharmony_ci**返回值:** 2477e41f4b71Sopenharmony_ci 2478e41f4b71Sopenharmony_ci| **类型** | **说明** | 2479e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 2480e41f4b71Sopenharmony_ci| [tag.MifareUltralightType](js-apis-nfcTag.md#mifareultralighttype9) | MIFARE Ultralight标签的类型。| 2481e41f4b71Sopenharmony_ci 2482e41f4b71Sopenharmony_ci**示例:** 2483e41f4b71Sopenharmony_ci 2484e41f4b71Sopenharmony_ci```js 2485e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2486e41f4b71Sopenharmony_ci 2487e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'mifareUltralight' correctly. 2488e41f4b71Sopenharmony_cilet getType : tag.MifareUltralightType = mifareClassic.getType(); 2489e41f4b71Sopenharmony_ciconsole.info("mifareUltralight getType: " + getType); 2490e41f4b71Sopenharmony_ci``` 2491e41f4b71Sopenharmony_ci 2492e41f4b71Sopenharmony_ci## NdefFormatableTag<sup>9+</sup> 2493e41f4b71Sopenharmony_ci 2494e41f4b71Sopenharmony_ciNdefFormatableTag为NDEF Formattable的标签提供格式化操作,继承自TagSession。 2495e41f4b71Sopenharmony_ci 2496e41f4b71Sopenharmony_ciTagSession是所有NFC Tag 技术类型的基类, 提供建立连接和发送数据等共同接口。具体请参见[TagSession](js-apis-tagSession.md)。 2497e41f4b71Sopenharmony_ci 2498e41f4b71Sopenharmony_ci以下是NdefFormatableTag的独有接口。 2499e41f4b71Sopenharmony_ci 2500e41f4b71Sopenharmony_ci### NdefFormatableTag.format<sup>9+</sup> 2501e41f4b71Sopenharmony_ci 2502e41f4b71Sopenharmony_ciformat(message: [NdefMessage](#ndefmessage9)): Promise\<void> 2503e41f4b71Sopenharmony_ci 2504e41f4b71Sopenharmony_ci将标签格式化为NDEF标签,将NDEF消息写入NDEF标签。使用Promise方式作为异步方法。 2505e41f4b71Sopenharmony_ci 2506e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 2507e41f4b71Sopenharmony_ci 2508e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2509e41f4b71Sopenharmony_ci 2510e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2511e41f4b71Sopenharmony_ci 2512e41f4b71Sopenharmony_ci**参数:** 2513e41f4b71Sopenharmony_ci 2514e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2515e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 2516e41f4b71Sopenharmony_ci| message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的NDEF消息。可以为null,为null时仅格式化标签,不写入内容。 | 2517e41f4b71Sopenharmony_ci 2518e41f4b71Sopenharmony_ci**返回值:** 2519e41f4b71Sopenharmony_ci 2520e41f4b71Sopenharmony_ci| 类型 | 说明 | 2521e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 2522e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2523e41f4b71Sopenharmony_ci 2524e41f4b71Sopenharmony_ci**错误码:** 2525e41f4b71Sopenharmony_ci 2526e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2527e41f4b71Sopenharmony_ci 2528e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2529e41f4b71Sopenharmony_ci| ------- | -------| 2530e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2531e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2532e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 2533e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 2534e41f4b71Sopenharmony_ci 2535e41f4b71Sopenharmony_ci**示例:** 2536e41f4b71Sopenharmony_ci 2537e41f4b71Sopenharmony_ci```js 2538e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2539e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2540e41f4b71Sopenharmony_ci 2541e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefFormatable' correctly. 2542e41f4b71Sopenharmony_ci 2543e41f4b71Sopenharmony_cifunction nfcTechDemo() { 2544e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 2545e41f4b71Sopenharmony_ci if (!ndefFormatable.isTagConnected()) { 2546e41f4b71Sopenharmony_ci if (!ndefFormatable.connectTag()) { 2547e41f4b71Sopenharmony_ci console.error("ndefFormatable connectTag failed."); 2548e41f4b71Sopenharmony_ci return; 2549e41f4b71Sopenharmony_ci } 2550e41f4b71Sopenharmony_ci } 2551e41f4b71Sopenharmony_ci 2552e41f4b71Sopenharmony_ci try { 2553e41f4b71Sopenharmony_ci // ndefMessage created from raw data, such as: 2554e41f4b71Sopenharmony_ci let ndefMessage = tag.ndef.createNdefMessage([0xD1, 0x01, 0x03, 0x54, 0x4E, 0x46, 0x43]); 2555e41f4b71Sopenharmony_ci // MUST can be parsed as NDEF Record. 2556e41f4b71Sopenharmony_ci // or ndefMessage created from tag.ndef.createNdefMessage(ndefRecords: NdefRecord[]) 2557e41f4b71Sopenharmony_ci 2558e41f4b71Sopenharmony_ci ndefFormatable.format(ndefMessage).then(() => { 2559e41f4b71Sopenharmony_ci console.info("ndefFormatable format Promise success."); 2560e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 2561e41f4b71Sopenharmony_ci console.error("ndefFormatable format Promise err Code: ${err.code}, message: ${err.message}"); 2562e41f4b71Sopenharmony_ci }); 2563e41f4b71Sopenharmony_ci } catch (businessError) { 2564e41f4b71Sopenharmony_ci console.error("ndefFormatable format Promise catch businessError Code: ${(businessError as Businsess).code}, " + 2565e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2566e41f4b71Sopenharmony_ci } 2567e41f4b71Sopenharmony_ci} 2568e41f4b71Sopenharmony_ci``` 2569e41f4b71Sopenharmony_ci 2570e41f4b71Sopenharmony_ci### NdefFormatableTag.format<sup>9+</sup> 2571e41f4b71Sopenharmony_ci 2572e41f4b71Sopenharmony_ciformat(message: [NdefMessage](#ndefmessage9), callback: AsyncCallback\<void>): void 2573e41f4b71Sopenharmony_ci 2574e41f4b71Sopenharmony_ci将标签格式化为NDEF标签,然后将NDEF消息写入NDEF标签。使用AsyncCallback方式作为异步方法。 2575e41f4b71Sopenharmony_ci 2576e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 2577e41f4b71Sopenharmony_ci 2578e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2579e41f4b71Sopenharmony_ci 2580e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2581e41f4b71Sopenharmony_ci 2582e41f4b71Sopenharmony_ci**参数:** 2583e41f4b71Sopenharmony_ci 2584e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2585e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 2586e41f4b71Sopenharmony_ci| message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的Ndef消息。可以为null,为null时仅格式化标签,不写入内容。 | 2587e41f4b71Sopenharmony_ci 2588e41f4b71Sopenharmony_ci**返回值:** 2589e41f4b71Sopenharmony_ci 2590e41f4b71Sopenharmony_ci| **类型** | **说明** | 2591e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 2592e41f4b71Sopenharmony_ci| callback: AsyncCallback\<void> | 以callback形式异步返回格式化操作结果。 | 2593e41f4b71Sopenharmony_ci 2594e41f4b71Sopenharmony_ci**错误码:** 2595e41f4b71Sopenharmony_ci 2596e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2597e41f4b71Sopenharmony_ci 2598e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2599e41f4b71Sopenharmony_ci| ------- | -------| 2600e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2601e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2602e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 2603e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 2604e41f4b71Sopenharmony_ci 2605e41f4b71Sopenharmony_ci**示例:** 2606e41f4b71Sopenharmony_ci 2607e41f4b71Sopenharmony_ci```js 2608e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2609e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2610e41f4b71Sopenharmony_ci 2611e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefFormatable' correctly. 2612e41f4b71Sopenharmony_ci 2613e41f4b71Sopenharmony_cifunction nfcTechDemo() { 2614e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 2615e41f4b71Sopenharmony_ci if (!ndefFormatable.isTagConnected()) { 2616e41f4b71Sopenharmony_ci if (!ndefFormatable.connectTag()) { 2617e41f4b71Sopenharmony_ci console.error("ndefFormatable connectTag failed."); 2618e41f4b71Sopenharmony_ci return; 2619e41f4b71Sopenharmony_ci } 2620e41f4b71Sopenharmony_ci } 2621e41f4b71Sopenharmony_ci 2622e41f4b71Sopenharmony_ci try { 2623e41f4b71Sopenharmony_ci // ndefMessage created from raw data, such as: 2624e41f4b71Sopenharmony_ci let ndefMessage = tag.ndef.createNdefMessage([0xD1, 0x01, 0x03, 0x54, 0x4E, 0x46, 0x43]); // MUST can be parsed as NDEF Record. 2625e41f4b71Sopenharmony_ci // or ndefMessage created from tag.ndef.createNdefMessage(ndefRecords: NdefRecord[]) 2626e41f4b71Sopenharmony_ci 2627e41f4b71Sopenharmony_ci ndefFormatable.format(ndefMessage, (err : BusinessError)=> { 2628e41f4b71Sopenharmony_ci if (err) { 2629e41f4b71Sopenharmony_ci console.error("ndefFormatable format AsyncCallback Code: ${err.code}, message: ${err.message}"); 2630e41f4b71Sopenharmony_ci } else { 2631e41f4b71Sopenharmony_ci console.info("ndefFormatable format AsyncCallback success."); 2632e41f4b71Sopenharmony_ci } 2633e41f4b71Sopenharmony_ci }); 2634e41f4b71Sopenharmony_ci } catch (businessError) { 2635e41f4b71Sopenharmony_ci console.error("ndefFormatable format AsyncCallback catch Code: ${(businessError as Businsess).code}, " + 2636e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2637e41f4b71Sopenharmony_ci } 2638e41f4b71Sopenharmony_ci} 2639e41f4b71Sopenharmony_ci``` 2640e41f4b71Sopenharmony_ci 2641e41f4b71Sopenharmony_ci### NdefFormatableTag.formatReadOnly<sup>9+</sup> 2642e41f4b71Sopenharmony_ci 2643e41f4b71Sopenharmony_ciformatReadOnly(message: [NdefMessage](#ndefmessage9)): Promise\<void> 2644e41f4b71Sopenharmony_ci 2645e41f4b71Sopenharmony_ci将标签格式化为NDEF标签,将NDEF消息写入NDEF标签,之后将标签设置为只读。使用Promise方式作为异步方法。 2646e41f4b71Sopenharmony_ci 2647e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 2648e41f4b71Sopenharmony_ci 2649e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2650e41f4b71Sopenharmony_ci 2651e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2652e41f4b71Sopenharmony_ci 2653e41f4b71Sopenharmony_ci**参数:** 2654e41f4b71Sopenharmony_ci 2655e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2656e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 2657e41f4b71Sopenharmony_ci| message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的NDEF消息。可以为null,为null时仅格式化标签,不写入内容。 | 2658e41f4b71Sopenharmony_ci 2659e41f4b71Sopenharmony_ci**返回值:** 2660e41f4b71Sopenharmony_ci 2661e41f4b71Sopenharmony_ci| 类型 | 说明 | 2662e41f4b71Sopenharmony_ci| ------------------------- | ------------------ | 2663e41f4b71Sopenharmony_ci| Promise\<void> | Promise对象。无返回结果的Promise对象。 | 2664e41f4b71Sopenharmony_ci 2665e41f4b71Sopenharmony_ci**错误码:** 2666e41f4b71Sopenharmony_ci 2667e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2668e41f4b71Sopenharmony_ci 2669e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2670e41f4b71Sopenharmony_ci| ------- | -------| 2671e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2672e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2673e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 2674e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 2675e41f4b71Sopenharmony_ci 2676e41f4b71Sopenharmony_ci**示例:** 2677e41f4b71Sopenharmony_ci 2678e41f4b71Sopenharmony_ci```js 2679e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2680e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2681e41f4b71Sopenharmony_ci 2682e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefFormatable' correctly. 2683e41f4b71Sopenharmony_ci 2684e41f4b71Sopenharmony_cifunction nfcTechDemo() { 2685e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 2686e41f4b71Sopenharmony_ci if (!ndefFormatable.isTagConnected()) { 2687e41f4b71Sopenharmony_ci if (!ndefFormatable.connectTag()) { 2688e41f4b71Sopenharmony_ci console.error("ndefFormatable connectTag failed."); 2689e41f4b71Sopenharmony_ci return; 2690e41f4b71Sopenharmony_ci } 2691e41f4b71Sopenharmony_ci } 2692e41f4b71Sopenharmony_ci 2693e41f4b71Sopenharmony_ci try { 2694e41f4b71Sopenharmony_ci // ndefMessage created from raw data, such as: 2695e41f4b71Sopenharmony_ci let ndefMessage = tag.ndef.createNdefMessage([0xD1, 0x01, 0x03, 0x54, 0x4E, 0x46, 0x43]); 2696e41f4b71Sopenharmony_ci // MUST can be parsed as NDEF Record. 2697e41f4b71Sopenharmony_ci // or ndefMessage created from tag.ndef.createNdefMessage(ndefRecords: NdefRecord[]) 2698e41f4b71Sopenharmony_ci 2699e41f4b71Sopenharmony_ci ndefFormatable.formatReadOnly(ndefMessage).then(() => { 2700e41f4b71Sopenharmony_ci console.info("ndefFormatable formatReadOnly Promise success."); 2701e41f4b71Sopenharmony_ci }).catch((err : BusinessError)=> { 2702e41f4b71Sopenharmony_ci console.error("ndefFormatable formatReadOnly Promise Code: ${err.code}, message: ${err.message}"); 2703e41f4b71Sopenharmony_ci }); 2704e41f4b71Sopenharmony_ci } catch (businessError) { 2705e41f4b71Sopenharmony_ci console.error("ndefFormatable formatReadOnly Promise catch Code: ${(businessError as Businsess).code}, " + 2706e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2707e41f4b71Sopenharmony_ci } 2708e41f4b71Sopenharmony_ci} 2709e41f4b71Sopenharmony_ci``` 2710e41f4b71Sopenharmony_ci 2711e41f4b71Sopenharmony_ci### NdefFormatableTag.formatReadOnly<sup>9+</sup> 2712e41f4b71Sopenharmony_ci 2713e41f4b71Sopenharmony_ciformatReadOnly(message: [NdefMessage](#ndefmessage9), callback: AsyncCallback\<void>): void 2714e41f4b71Sopenharmony_ci 2715e41f4b71Sopenharmony_ci将标签格式化为NDEF标签,然后将NDEF消息写入NDEF标签,之后将标签设置为只读。使用callback方式作为异步方法。 2716e41f4b71Sopenharmony_ci 2717e41f4b71Sopenharmony_ci**需要权限:** ohos.permission.NFC_TAG 2718e41f4b71Sopenharmony_ci 2719e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.Communication.NFC.Tag 2720e41f4b71Sopenharmony_ci 2721e41f4b71Sopenharmony_ci**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 2722e41f4b71Sopenharmony_ci 2723e41f4b71Sopenharmony_ci**参数:** 2724e41f4b71Sopenharmony_ci 2725e41f4b71Sopenharmony_ci| 参数名 | 类型 | 必填 | 说明 | 2726e41f4b71Sopenharmony_ci| -------- | ----------------------- | ---- | -------------------------------------- | 2727e41f4b71Sopenharmony_ci| message | [NdefMessage](#ndefmessage9) | 是 | 格式化成功时要写入的NDEF消息。可以为null,为null时仅格式化标签,不写入内容。| 2728e41f4b71Sopenharmony_ci 2729e41f4b71Sopenharmony_ci**返回值:** 2730e41f4b71Sopenharmony_ci 2731e41f4b71Sopenharmony_ci| **类型** | **说明** | 2732e41f4b71Sopenharmony_ci| ------------------ | --------------------------| 2733e41f4b71Sopenharmony_ci| callback: AsyncCallback\<void> | 以callback形式异步返回格式化操作结果。 | 2734e41f4b71Sopenharmony_ci 2735e41f4b71Sopenharmony_ci**错误码:** 2736e41f4b71Sopenharmony_ci 2737e41f4b71Sopenharmony_ci以下错误码的详细介绍请参见[NFC错误码](errorcode-nfc.md)。 2738e41f4b71Sopenharmony_ci 2739e41f4b71Sopenharmony_ci| 错误码ID | 错误信息| 2740e41f4b71Sopenharmony_ci| ------- | -------| 2741e41f4b71Sopenharmony_ci| 201 | Permission denied. | 2742e41f4b71Sopenharmony_ci| 401 | The parameter check failed. Possible causes: <br>1. Mandatory parameters are left unspecified.<br>2. Incorrect parameters types.<br>3. Parameter verification failed. | 2743e41f4b71Sopenharmony_ci| 3100201 | Tag running state is abnormal in service. | 2744e41f4b71Sopenharmony_ci| 3100204 | Tag I/O operation failed. | 2745e41f4b71Sopenharmony_ci 2746e41f4b71Sopenharmony_ci**示例:** 2747e41f4b71Sopenharmony_ci 2748e41f4b71Sopenharmony_ci```js 2749e41f4b71Sopenharmony_ciimport { tag } from '@kit.ConnectivityKit'; 2750e41f4b71Sopenharmony_ciimport { BusinessError } from '@kit.BasicServicesKit'; 2751e41f4b71Sopenharmony_ci 2752e41f4b71Sopenharmony_ci// see 'tag.TagInfo' at 'js-apis-nfcTag.md', obtains the 'ndefFormatable' correctly. 2753e41f4b71Sopenharmony_ci 2754e41f4b71Sopenharmony_cifunction nfcTechDemo() { 2755e41f4b71Sopenharmony_ci // connect the tag at first if not connected. 2756e41f4b71Sopenharmony_ci if (!ndefFormatable.isTagConnected()) { 2757e41f4b71Sopenharmony_ci if (!ndefFormatable.connectTag()) { 2758e41f4b71Sopenharmony_ci console.error("ndefFormatable connectTag failed."); 2759e41f4b71Sopenharmony_ci return; 2760e41f4b71Sopenharmony_ci } 2761e41f4b71Sopenharmony_ci } 2762e41f4b71Sopenharmony_ci 2763e41f4b71Sopenharmony_ci try { 2764e41f4b71Sopenharmony_ci // ndefMessage created from raw data, such as: 2765e41f4b71Sopenharmony_ci let ndefMessage = tag.ndef.createNdefMessage([0xD1, 0x01, 0x03, 0x54, 0x4E, 0x46, 0x43]); 2766e41f4b71Sopenharmony_ci // MUST can be parsed as NDEF Record. 2767e41f4b71Sopenharmony_ci // or ndefMessage created from tag.ndef.createNdefMessage(ndefRecords: NdefRecord[]) 2768e41f4b71Sopenharmony_ci 2769e41f4b71Sopenharmony_ci ndefFormatable.formatReadOnly(ndefMessage, (err : BusinessError)=> { 2770e41f4b71Sopenharmony_ci if (err) { 2771e41f4b71Sopenharmony_ci console.error("ndefFormatable formatReadOnly AsyncCallback err Code: ${err.code}, message: ${err.message}"); 2772e41f4b71Sopenharmony_ci } else { 2773e41f4b71Sopenharmony_ci console.info("ndefFormatable formatReadOnly AsyncCallback success."); 2774e41f4b71Sopenharmony_ci } 2775e41f4b71Sopenharmony_ci }); 2776e41f4b71Sopenharmony_ci } catch (businessError) { 2777e41f4b71Sopenharmony_ci console.error("ndefFormatable formatReadOnly AsyncCallback catch Code: ${(businessError as Businsess).code}, " + 2778e41f4b71Sopenharmony_ci "message: ${(businessError as Businsess).message}"); 2779e41f4b71Sopenharmony_ci } 2780e41f4b71Sopenharmony_ci} 2781e41f4b71Sopenharmony_ci``` 2782