2012-03-20 70 views
2

我有一個帶有webview的android應用程序。
當網絡視圖以某些文本進入網址時,例如票,那麼我想通過NFC將該URL發送到另一個NFC設備。
我能夠將URL發送到類型4 NFC標籤,但我無法找到如何將其發送到其他NFC設備,以便它將啓動具有該URL的瀏覽器。
我只是使用以下命令來創建NDEF
在2個NFC設備之間發送一個URL

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

,然後用它來寫

ndef.writeNdefMessage(message); 

我寫在ICS應用(上Galaxy Nexus的),並試圖發送到2.3.6的銀河系s2。

任何幫助和指針將不勝感激。

+0

確實galaxy s2有NFC芯片嗎? – 2012-03-20 18:18:19

+0

是的,它確實,我能夠讀取銀河s2上的nfc標記 – DaiLak 2012-03-20 18:52:19

回答

2

將NDEF消息發送到另一部手機時,不使用標籤讀/寫API,如Ndef。相反,您的NDEF消息是通過NFC點對點傳送的。要做到這一點的方法之一是使用setNdefPushMessageCallbackActivityonCreate()

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消息(就你的情況而言:顯示在webview中的URL)。

+0

謝謝,它的工作原理!我確實發現星系聯繫4.04和星系S2 2.36之間的「連接」是不穩定的。但總的來說,我能夠轉移網址。 – DaiLak 2012-03-22 19:28:40

+0

您想要嘗試將設備相對於彼此垂直放置,以便NFC天線正確排列。 – 2012-03-22 19:53:10

+0

但是您如何發送多個郵件而不斷開連接? – Pittfall 2013-04-24 18:46:34

相關問題