Android NFC로 코딩을 시작한 순간, NDEF 데이터를 mifare classic 태그에 성공적으로 읽고 쓴 것입니다. 문제는 응용 프로그램이 ndef 레코드에서 페이로드를 읽을 때 텍스트의 시작 부분에 항상 '* en'문자가 포함되어있는 경우입니다. 나는 그것이 언어 문자라고 생각하지만 그 문자없이 실제 텍스트 메시지를 얻는 방법은 무엇입니까? Android NDEF 레코드 페이로드의 이상한 캐릭터
이
태그에서 읽은 것을 응용 프로그램의 스크린 샷은 실제 텍스트는 '안녕하세요'는 여기에
@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'가 표시됩니다. 문제를 발견했습니다. Nils Pipenbrik이 아래에서 설명합니다. 이 링크 http://code.google.com/p/openmobster/wiki/NFC는 페이로드 데이터를 올바르게 읽는 방법을 보여줍니다. –