如何从NdefMessage搜索特定的嵌入式NdefRecord

时间:2018-12-18 15:27:36

标签: android performance optimization kotlin nfc

具有如下所示的十六进制值这样的有效负载,使用https://www.ndefparser.net/对其进行解析以查看NdefRecord结构:

94 03 49 61 73 76 94 01 06 69 04 02 71 79 79 71 54 03 39 63 75 73 94 03 11 63 69 64 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 19 01 03 03 54 63 70 6C 00 70 6C 54 03 11 63 75 74 04 AC F8 12 E9 07 AA 87 C5 78 58 CF 77 E7 8B 93 00 54 03 41 61 73 76 94 01 06 69 04 01 05 50 37 B0 54 02 32 65 74 94 03 09 6F 69 64 04 BA 80 61 6D 51 FB 1B 2B 59 01 1D 01 55 6E 00 65 31 35 33 31 38 32 35 30 35 31 32 33 34 2D 31 35 34 32 35 37 35 39 35 30 38 34 34

我想搜索TYPE:0x54(“ T”)的特定记录并到达有效负载。

我已经这样做了,但是我觉得这不是最佳的,可以改进的:

    ndefMessage.records.forEach {
  if (it.type?.contentEquals(hexStringToByteArray("617376")) == true) {
    NdefMessage(it.payload).records.forEach {
      if (it.type?.contentEquals(hexStringToByteArray("6574")) == true) {
        NdefMessage(it.payload).records.forEach {
          if (it.type?.contentEquals(hexStringToByteArray("54")) == true) {
            if (getBytesHexValue(it.payload).startsWith("00")) {
              payload = String(it.payload).substring(1)
            }
          }
        }
      }
    }
  }
}

有什么方法可以改善这一点?

0 个答案:

没有答案