2012-03-20 3 views
2

webview가 포함 된 Android 애플리케이션이 있습니다.
웹 뷰가 특정 텍스트 (예 : 티켓을 보내면 NFC를 통해 다른 NFC 장치로 URL을 보내고 싶습니다.
URL을 유형 4 NFC 태그로 보낼 수 있었지만 다른 NFC 장치로 보내는 방법을 찾을 수 없어 URL과 함께 브라우저가 시작됩니다.
난 그냥
2 대의 NFC 장치간에 URL 보내기

ndef.writeNdefMessage(message); 

내가 (갤럭시 넥서스)에 ICS에서 응용 프로그램을 쓰고 있어요를 작성

NdefRecord uriRecord = NdefRecord.createUri(url); 
NdefMessage message = new NdefMessage(new NdefRecord[] { 
      uriRecord    
}); 

을 NDEF를 만든 다음 이것을 사용하려면 다음을 사용하여 보내려고했다 2.3.6으로 은하 s2에.

도움 및 포인터를 제공해 주시면 감사하겠습니다.

+0

galaxy s2에 NFC 칩이 있습니까? –

+0

네, 그렇습니다. 갤럭시 s2에서 nfc 태그를 읽을 수있었습니다. – DaiLak

답변

2

다른 전화로 NDEF 메시지를 보낼 때 Ndef과 같은 태그 읽기/쓰기 API를 사용하지 마십시오. 대신 NDEF 메시지는 NFC 피어 투 피어를 통해 전달됩니다. 그렇게하는 한 가지 방법은에서 setNdefPushMessageCallback을 사용하는 것입니다 ActivityonCreate() :

NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this); 
    nfc.setNdefPushMessageCallback(new NfcAdapter.CreateNdefMessageCallback() 
    { 
     /* 
     * (non-Javadoc) 
     * @see android.nfc.NfcAdapter.CreateNdefMessageCallback#createNdefMessage(android.nfc.NfcEvent) 
     */ 
     @Override 
     public NdefMessage createNdefMessage(NfcEvent event) 
     { 
      NdefRecord uriRecord = NdefRecord.createUri(Uri.encode("http://www.google.com/")); 
      return new NdefMessage(new NdefRecord[] { uriRecord }); 
     } 

    }, this, this); 

다른 NFC 장치가 근처에 오면 콜백이 호출되고 피어 - 투 - 피어 연결이 설정됩니다. 그런 다음 콜백은 보낼 NDEF 메시지를 만듭니다 (귀하의 경우 : 웹보기에 표시된 URL).

+0

고맙습니다. 작동합니다! 나는 "연결"이 은하계 넥서스 4.04와 갤럭시 S2 2.36 사이에서 불안정하다는 것을 발견했다. 하지만 일반적으로 URL을 전송할 수있었습니다. – DaiLak

+0

NFC 안테나가 올바르게 정렬되도록 장치를 서로 수직으로 배치하여 실험하고 싶습니다. –

+0

하지만 연결을 끊지 않고 여러 개의 메시지를 보내는 방법은 무엇입니까? – Pittfall