我正在尝试使用 Android 读取 NFC 标签。我是一名养蜂人,这是为了在我接近蜂巢时识别它们。我已经在这里搜索过,但阅读标签时仍然遇到问题。我想阅读文本,但是当它阅读时,在所需文本之前有一个类似正方形的字符和显示为“十”的字符。
这是我正在使用的代码。我知道有效负载字节必须正确,我尝试更改它们但无济于事。
private static NdefMessage getTestMessage() {
byte[] mimeBytes = "application/com.android.cts.verifier.nfc"
.getBytes(Charset.forName("US-ASCII"));
byte[] id = new byte[] {1, 3, 3, 7};
byte[] payload = "CTS Verifier NDEF Push Tag".getBytes(Charset.forName("US-ASCII"));
return new NdefMessage(new NdefRecord[] {
new NdefRecord(NdefRecord.TNF_MIME_MEDIA, mimeBytes, id, payload)
});
}
@Override
protected void onResume() {
super.onResume();
mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
mNfcAdapter.setNdefPushMessageCallback(this, this);
}
// sending message
@Override
public NdefMessage createNdefMessage(NfcEvent event) {
return getTestMessage();
}
private NdefMessage[] getNdefMessages(Intent intent) {
Parcelable[] rawMessages = intent
.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); …Run Code Online (Sandbox Code Playgroud) 可能重复:
Android NDEF记录有效负载上的奇怪字符
我试图从NFC标签中读取一些纯文本.我的代码在下面;
public void processReadIntent(Intent intent){
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(
NfcAdapter.EXTRA_NDEF_MESSAGES);
NdefMessage msg = (NdefMessage) rawMsgs[0];
// record 0 contains the MIME type, record 1 is the AAR, if present
Log.d("msg", msg.getRecords()[0].getPayload().toString());
String PatientId=new String(msg.getRecords()[0].getPayload());
String UserName="nurse";
String Password="nurse";
Toast.makeText(getApplicationContext(), PatientId, Toast.LENGTH_LONG).show();
//tv.setText(new String(msg.getRecords()[0].getPayload()));
}
Run Code Online (Sandbox Code Playgroud)
但是,这里的问题是当我读取数据时,我可以看到我想要的数据在开始时有一个'en'. 例如:如果我在'john'中的实际数据,当我阅读时,我可以将其视为'enjohn'. 我知道'en'是语言标题.但是我该如何删除它?
我尝试过子串,但之后甚至没有工作......
有关如何删除此语言标题的任何想法???