2013-04-16 2 views
0

저는 minSdk = 14 및 targetSdk = 17 인 Android 애플리케이션을 개발 중입니다. Android Beam을 사용하여 휴대 전화의 일반 텍스트 문자열을 NFC 판독기로 보내는 응용 프로그램을 원합니다. 아직 리더가 없으며 하나의 Android 기기에서 다른 기기로 Beam 일반 텍스트 데이터를 보내려고 노력하고 있습니다. (Nexus 4는 4.2.2, LG Optimus L5는 4.0.3입니다.)Android Beam을 통한 일반 텍스트

텍스트 데이터를 보내는 두 가지 방법을 발견했습니다. 첫 번째는 형식으로 TNF_WELL_KNOWN 및 RTD_TEXT를 사용하고 다른 하나는 형식으로 TNF_MIME_MEDIA 및 text/plain을 사용하는 것입니다.

L5에서 N4로 전송 한 후 수집 된 새 태그는 "text/plain"입니다. 또한 NXP TagWriter를 사용하여 Beam 데이터를 읽으려고 시도했습니다. RTD_TEXT http://i.imgur.com/0qbAwld.png을 사용할 때의 결과이며 text/plain MIME http://i.imgur.com/bz9RxuI.png을 사용할 때입니다. 텍스트를 코드를 사용할 때

 NdefRecord[] records = { 
       new NdefRecord(NdefRecord.TNF_WELL_KNOWN, 
         NdefRecord.RTD_TEXT, 
         new byte[0], 
         "testing".getBytes()) 
     }; 
     NdefMessage msg = new NdefMessage(records); 
     adapter.setNdefPushMessage(msg, this); 

이 RTD_TEXT

를 사용하는 경우

이 코드는

 NdefRecord[] records = { 
       new NdefRecord(NdefRecord.TNF_MIME_MEDIA, 
         "text/plain".getBytes(), 
         new byte[0], 
         "testing".getBytes()) 
     }; 
     NdefMessage msg = new NdefMessage(records); 
     adapter.setNdefPushMessage(msg, this); 

어떻게 올바르게 NdefRecord를 만들려면 어떻게해야합니까/일반 MIME입니까? 아니면 페이로드가 다른 휴대 전화에 표시되지 않도록 의도 한대로 작동합니까? 일반 텍스트 데이터를 보낼 때이 두 가지 방법 (RTD_TEXT 및 MIME) 중 어느 것을 선호합니까?

답변

0

RTD_TEXT 레코드는 의도 필터링을 위해 MIME 유형 "text/plain"에 매핑됩니다. 즉 : "text/plain"에 대한 인 텐트 필터는 두 가지 유형의 레코드와 일치합니다. 그래서 어떤 유형을 사용하든 상관 없습니다.

RTD_TEXT 레코드의 페이로드는 MIME 형식의 텍스트/일반 텍스트보다 약간 복잡합니다. 여기에는 사용되는 인코딩 및 콘텐츠 언어에 대한 정보가 포함되어야합니다. 자세한 내용은 http://www.nfc-forum.org/specs/spec_list/에 나와있는 사양을 참조하십시오. (따라서 RTD_TEXT 레코드를 생성 한 것은 올바르지 않습니다.)

+0

NXP TagWriter가 내용을 표시하지 않더라도 MIME-one이 정확해야합니까? – Nait

+0

괜찮습니다. –

관련 문제