Android NFC : SNEP protocol and P2P response

空扰寡人 提交于 2020-01-13 09:35:08

问题


I am trying to implement a P2P communication between two Android phones (one of them will be replaced by an independent device in the end). I have seen that Android 4 supports SNEP which is published by the NFC forum and should be available on non-android devices.

I have following the Google tutorial for NFC P2P (http://developer.android.com/guide/topics/nfc/nfc.html#p2p) and I can send some information from one phone to the other, but I have a few questions:

  1. Android Beam is just a name for NFC or it is an Android protocol working over SNEP/NPP ? If it's a protocol, how to do NFC P2P without Beam ?
  2. How to set the use of SNEP ?
  3. How to send a response to the other device when the connection is initialized (first message received) ?

Thank you for your help !!!


回答1:


Android Beam is just a name, correct. Devices use SNEP by default, if that fails, it tries NPP. You can't send a response really from the receiving device to the sender. You can only use a callback to be notified of a successful push:

http://developer.android.com/reference/android/nfc/NfcAdapter.OnNdefPushCompleteCallback.html




回答2:


ismb-snep-java's Google Code page explains communication and data transfer using SNEP protocol and I have tested it and it works. After searching through the PDF's from both ACR and Android, I believe you would just have to make some tweeks to make it work the way you desire.




回答3:


To give a more clear explanation:

Android Beam is just a name for NFC or it is an Android protocol working over SNEP/NPP ? If it's a protocol, how to do NFC P2P without Beam ?

Android beam is a feature of the Android OS. It's a high level NDEF message exchange mechanism on top of SNEP/NPP. For now, peer-to-peer mode (on Android) is only accessible through Android Beam, which can't be used for bi-directional communication.

How to set the use of SNEP ?

If you want to use SNEP on Android, (i think) the only way is to program your own SNEP implementation on top of the ISO-DEP protocol. Because SNEP is on top of LLCP you also need to create your own LLCP implementation. That's not easy..

How to send a response to the other device when the connection is initialized (first message received)

With SNEP, you can't. As @robertly said it's only possible to create a callback message. If you want true bi-directional communication, use the reader/writer and card-emulation operation modes.



来源:https://stackoverflow.com/questions/8725296/android-nfc-snep-protocol-and-p2p-response

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!