HarmonyOS鸿蒙Next中NfcB.transmit的使用方法

HarmonyOS鸿蒙Next中NfcB.transmit的使用方法

if (nfcB != null && typeof nfcB.transmit === 'function') {
  hilog.info(0x0000, 'NFCardReader', 'nfcB is valid and supports transmit method.');
  const transmitPromise = nfcB.transmit(Array.from(ipara));
  if (!(transmitPromise instanceof Promise)) {
    hilog.error(0x0000, 'NFCardReader', 'nfcB.transmit did not return a Promise.');
  } else {
    transmitPromise
      .then((result: number[]) => {
        hilog.info(0x0000, 'NFCardReader', 'nfcB.transmit completed.');
        // 处理成功的结果
        InputReport = new Uint8Array(result);
        resultData = result;
        console.log("InputReport data", NFCardReader.printHexString(InputReport));
      })
      .catch((error: Error) => {
        hilog.error(0x0000, 'NFCardReader', `Error during transmit: ${error.message}`);
      });
  }
} else {
  hilog.error(0x0000, 'NFCardReader', 'nfcB is invalid or does not support transmit method.');
}

console.log("NfccallbacksousbWrite pr2");

为什么开头和结尾的打印语句都打印了,但是then代码块里面的没有。为什么不执行then?


更多关于HarmonyOS鸿蒙Next中NfcB.transmit的使用方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

您好,能麻烦提供一下完整的demo吗,我这里复现一下。

更多关于HarmonyOS鸿蒙Next中NfcB.transmit的使用方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙Next)中,NfcB.transmit 用于与NFC-B(ISO 14443-4B)标签进行数据交换。首先,确保设备支持NFC并已初始化NfcB对象。通过NfcB.connect()建立连接后,使用transmit(byte[] data)发送指令数据,并接收标签的响应。示例代码如下:

NfcB nfcB = NfcB.getDefaultAdapter(context);
nfcB.connect();
byte[] response = nfcB.transmit(new byte[]{...}); // 发送指令
nfcB.close();

注意处理异常和权限,确保应用具有android.permission.NFC权限。

回到顶部