【问题标题】:Reading NFC Tag types "android.nfc.tech.NfcV" and "android.nfc.tech.NdefFormatable" with React Native使用 React Native 读取 NFC 标签类型“android.nfc.tech.NfcV”和“android.nfc.tech.NdefFormatable”
【发布时间】:2019-06-06 12:22:42
【问题描述】:

我正在尝试使用 NFC 从血糖仪读取数据,目前在 Android 上,尚未尝试 iOS(没有带 NFC 的手机)。

我使用 react-native-nfc-manager 作为库和它附带的示例: https://github.com/whitedogg13/react-native-nfc-manager

我收到了这个标签:

{ "techTypes":["android.nfc.tech.NfcV","android.nfc.tech.NdefFormatable"], "id":"87C5280D002602E0"}

我可以看到 NfcV 包含在这个库中,但是我如何阅读它作为那种类型?

我正在按照示例进行操作,因此我没有在清单或 build.gradle 中设置任何内容。我已经链接它并且它正在工作,但我错过了它似乎的最后一部分。

按照这个例子,看起来我应该使用这样的方法:

_parseText = (tag) => {
    try {
        if (Ndef.isType(tag.ndefMessage[0], Ndef.TNF_WELL_KNOWN, Ndef.RTD_TEXT)) {
            return Ndef.text.decodePayload(tag.ndefMessage[0].payload);
        }
    } catch (e) {
        console.log(e);
    }
    return null;
}

但我的标签没有ndefMessage[0]

【问题讨论】:

    标签: android react-native nfc ndef iso-15693


    【解决方案1】:

    由于您的标签在其techTypes 列表中不包含Ndef,因此它不包含NDEF 消息。因此,您将无法阅读任何此类消息。由于您的“标签”是血糖仪,我认为它甚至不会包含 NDEF 消息。

    相反,您必须找出血糖仪实际支持的命令(可能它会支持 ISO/IEC 15693 READ SINGLE BLOCK 命令(请参阅here)。为了发送此类低级命令,您需要通过请求标签技术来使用Generic NfcTech API

    NfcManager.requestTechnology(NfcTech.NfcV)
    

    然后就可以使用收发方式来交换任意命令了:

    NfcManager.transceive(...)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-26
      • 2015-12-25
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多