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();
}
}
}
}