2014-02-25 64 views
0

我一直致力於Peer-To-Peer模式的nfc樣本。我已經實現onResume方法在兩個不同的方式,對於引發劑模式並如下目標模式:onNewIntent未被啓用android nfc實現未啓用android橫樑

對於啓動器模式:

mAdapter.setNdefPushMessage(getTestNdefMessage(), this); 

和對於目標模式:

mAdapter.enableForgroundDispatch(this, pendingIntent, null, null); 

我製成一個機器人電話作爲發起者和其他人作爲目標,並將它們背靠背。在這裏,我可以監聽NFC設備檢測聲音,但是沒有收到任何在android手機設備上以onNewIntent作爲目標模式的呼叫。

任何人都可以幫助我,我錯了,在概念或實施。如果我啓用Android NFC Beamsettings比我收到Initiator設備Touch to Beam的通知。在這種情況下,我會撥打onNewIntent

任何方向將是有幫助的。

+0

啓用Beam時會調用'onNewIntent'方法,對嗎?那麼問題在哪裏? –

+0

這就是我的困惑所在。是否有必要啓用安卓光束在p2p模式下使用nfc? – sam18

+0

Android Beam **是Android的唯一點對點模式界面。所以,是的,如果你想通過點對點模式傳輸任何東西,你必須使用Beam。 –

回答

1

Android Beam is Android的唯一點對點通信功能。因此,當您禁用Android Beam時,您的設備將無法通過點對點模式發送或接收消息。因此,如果波束被禁用,將兩部手機放在一起時,onNewIntent(等)不會發射。

Android Beam時對NFC論壇的標準對等網絡模式協議棧的基礎上實現:

+--------------------------------------------+ 
| Android Beam        | 
+--------------------------------------------+ 
| NDEF (NFC Data Exchange Format)   | 
+--------------------------------------------+ 
| SNEP (Simple NDEF Exchange Protocol)  | 
| (or NDEF Push Protocol (NPP) for backwards | 
| compatibility to pre-SNEP Android devices) | 
+--------------------------------------------+ 
| LLCP (Logical Link Control Protocol)  | 
+--------------------------------------------+ 
| NFCIP-1 (ISO/IEC 18092)     | 
+--------------------------------------------+ 

(術語「始作俑者」,並且使用的「目標」是隻在NFCIP相關通常這兩個部分將在NFC設備上實現,並且兩個NFC設備將(有些自動地)同意誰擔任發起者角色以及誰承擔目標角色。)

因此,您通常會實現所有層直到SNEP才能與具有Beam的Android設備進行通信。 Windows Phone 8和Blackberry已經實現了用於對等NDEF數據交換的SNEP。