在 Android 中获取 NFC 负载

问题描述 投票:0回答:1

我有两个应用程序,一个在 android studio(java) 上,另一个在 Visual Studio C# 中,我试图在两个应用程序中获取有效负载,在这种情况下我使用相同的 nfc 标签,但无法在有效负载中获取相同的字节,我需要它像这样进行进一步的操作。

这是我的 c# 代码:

ProximityMessage message;
var rawMsg = message.Data.ToArray();
//rawMsg has a value of [209,1,19,84,2,105,116,30,170,127,251,46,128,69,76,132,236,80,34,204,234,212,192]

这是我在 android studio (java) 中的代码:

Parcelable[] rawMsgs= intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage[] msgs = null;
msgs = new NdefMessage[rawMsgs.length];
byte[] rawPayload = msgs[0].toByteArray();
//rawPayload has a value of [-47 , 1 , 19,  84 ,2 , 105 , 116,  30,  -86 , 127, -5 , 46, -128 , 69 , 76 , -124 , -20 , 80, 34, -52 , -22 , -44, -64]   
java c# android nfc payload
1个回答
0
投票

正如 Robert 所说,这只是一个显示问题,例如 209(无符号)的字节值与 -47(有符号)相同,只是到显示整数的转换处理方式不同。

在Java中如果你打印

Byte.toUnsignedInt(rawPayload[0])
你会得到209

© www.soinside.com 2019 - 2024. All rights reserved.