Android NFCでコーディングを開始しました。私は正常にmifare classicタグにNDEFデータを読み書きしました。問題は、アプリケーションがペイロードをndefレコードから読み込み、テキストの先頭に常に '* en'という文字が含まれていることです。私はそれが言語文字だと思うが、その文字なしで実際のテキストメッセージを取得する方法は?Android NDEFレコードのペイロードに奇妙な文字
これはタグから読み取っ何のアプリのスクリーンショットで、実際のテキストは「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();
}
}
}
}
"en"は "英語"に由来すると思います。私はあなたが間違いなく言語コードを追加したと思います。 XMLの言語タグを変更すると、別の文字シーケンスが表示されることがあります。これを試してください。少なくとも、あなたはどこから来ているのかわかりますし、googleで解決策を探すことができます。 –
タグを書き込むコードを投稿することができれば役に立ちます。他の誰かのアプリを使ってあなたのタグを読んでタグの書き方が分かっているのか、読んでいるのか分かりましたか? (Ndefメッセージにあるのと同じ情報が表示されている場合は書き込みに問題があり、 "Hello World ..."と表示されている場合は読み込みの問題です) –
Lajos、Ben ...あなたのコメントありがとう私は他のアプリ、NFCのタグ情報を使ってみましたが、アプリは 'Hello World'.Btwを表示しました.Nils Pipenbrikが以下で説明するように問題を発見しました。このリンクhttp://code.google.com/p/openmobster/wiki/NFCでは、ペイロードデータを正しく読み取る方法が示されています。 –