2 개의 Android 애플리케이션을 개발했습니다. 첫 번째는 NFC 태그에 쓰고, 두 번째는 작성한 내용을 읽습니다. NDEF 레코드를 NDEF 메시지에 숨기시겠습니까?
이
내가 (ReadNFC) 첫 번째 응용 프로그램 (WriteNFC)private NdefRecord createRecord1(String data)
{
byte[] payload = data.getBytes(Charset.forName("UTF-8"));
byte[] empty = new byte[] {};
return new NdefRecord(NdefRecord.TNF_ABSOLUTE_URI, empty, empty, payload);
}
private NdefRecord createRecord2(String data)
{
byte[] payload = data.getBytes(Charset.forName("UTF-8"));
byte[] empty = new byte[] {};
return new NdefRecord(NdefRecord.TNF_ABSOLUTE_URI, payload, empty, empty);
}
에 그리고 두 번째 응용 프로그램에서했던 것입니다 내 자신의 응용 프로그램 (ReadNFC) 읽을
NdefRecord cardRecord = msg.getRecords()[1];//Extract the second Record
String url_data = new String(cardRecord.getType());//Read data type
의 물론 "Record Type"을 통해 저장 한 두 번째 레코드의 페이로드 만 화면에 표시했습니다. 그러나 사진에 표시된 네이티브 응용 프로그램 (특히 "태그")을 사용하면 올바르게 첫 번째 레코드가 표시되고 두 번째 레코드는 빈 필드가됩니다. 이 필드를 숨기려면 어떻게해야합니까? 그렇지 않으면 다른 타사 응용 프로그램에서 두 번째 레코드를 읽지 않도록하려면 어떻게해야합니까?
내 응용 프로그램의 Thomas에게 버그가 없습니다. 페이로드를 레코드 유형으로 선택하고 페이로드 필드에서 비워두기 만합니다. [보시다시피, getPayload()가 아닌 getType()을 사용하고 있습니다. 이렇게하면 타사 응용 프로그램이 빈 필드를 표시합니다. 정확히 내가 원하는 것은 아니지만 적어도 두 번째 레코드 대신 빈 필드가 표시됩니다! – mOmO
확인. 업데이트 된 응답을 참조하십시오. – ThomasRS
나는 이미 Unknown Record를 사용했다. 실제로 제 3 자 응용 프로그램은 두 번째 레코드의 데이터를 표시하지 않습니다. 하지만 TNF_UNKNOWN 레코드를 사용할 때는 유형 필드가 비어 있어야합니다. 결과적으로 타사 응용 프로그램은 "알 수없는 태그 유형"이라는 특정 메시지를 표시합니다. TNF_EXTERNAL_TYPE을 사용할 때와 같은 기능! – mOmO