Я только начал кодировать с помощью Android NFC, я успешно прочитал и записал данные NDEF в классический тег mifare. Проблема в том, что когда приложение читает полезную нагрузку из записи ndef, она всегда содержит символ '* en' в начале текста. Я думаю, что это языковой символ, но как получить настоящее текстовое сообщение без этого символа?
Это снимок экрана, который приложение считало из тега, фактический текст - «Hello World»
Вот код для чтения
@Override
public void onNewIntent(Intent intent) {
Log.i("Foreground dispatch", "Discovered tag with intent: " + intent);
// mText.setText("Discovered tag NDEF " + ++mCount + " with intent: " + intent);
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
Parcelable[] rawMsgs = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
if (rawMsgs != null) {
NdefMessage[] msgs = new NdefMessage[rawMsgs.length];
for (int i = 0; i < rawMsgs.length; i++) {
msgs[i] = (NdefMessage) rawMsgs[i];
}
NdefMessage msg = msgs[0];
try {
mText.setText(new String(msg.getRecords()[0].getPayload(), "UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
}