0

Ok, I watched the Google I/O from 2011 presentation on NFC on peer to peer.

The demo was done on Gingerbread and using the application Sticky Notes found

Now in this demo, both device the onNewIntent() was called at the same time so both devices are trying to share information to one another.

On ICS and above, you have Android Beam..

With Android Beam, you have to touch to trigger the onNewIntent() event that will send the NDef message across.

Now the problem with this is that now to trigger the onNewIntent() on both devices, both user on each device has to "Touch To Beam" at the same time.

Is there a way that when you Touch To Beam on one device, both can have the onNewIntent() to be called?

I am trying to develop an app that will exchange data to each other but for it to work in a nice friendly fashion I need the devices to share the data at the same time once the Touch To Beam has been initiated on one device. I do hope this is possible.

Edit: It looks like this might not be possible to do :(

4

4 回答 4

1

据我所知,NFC 本身无法提供您想要的功能。touch-to-beam/SNEP/NPP 传输仅在 Android 上是一个方向。单击其屏幕的用户会将 NDEF 消息推送到另一部电话。

我相信他们在视频中所做的是与 NDEF 消息建立蓝牙连接以进行传输(正如您在便笺演示中看到的那样)。不幸的是,没有很好的 API。

然而,EasyNFC 项目承诺能够让您在两个手机/应用程序之间创建蓝牙连接和套接字。在这里查看

我试了一下,并不喜欢设置蓝牙连接时仍然需要的 Touch-to-Beam UI。它也不太适合我的需求,因为我想将手机转移到电脑上,并且不想实现 NFC P2P 和蓝牙连接。

于 2013-05-24T20:58:48.140 回答
0

一般来说,Android 不应该允许 NFC 数据同时双向传输。让我们考虑一个场景,我想用 NFC 向我的朋友发送一个东西。我朋友手机上主动打开的内容并不重要。即使接收方没有打开同一个应用程序,我也应该发送这个东西。我朋友的手机中可能有另一个应用程序试图向我发送另一件事。当我们触摸我们的手机时,Android Beam (TM) 会出现,并且他的数据是从被触摸的手机发送的。

在您的情况下,我认为您应该通过设置禁用 Android Beam (TM)setNdefPushMessage(null)并使用旧方式发送两种方式。

于 2013-07-08T21:25:31.640 回答
0

您是否尝试过:
在 phone-1 上使用 Touch to Beam 来“推送”数据,而在另一个(phone-2)上,使用 NDEF_DISCOVERED/TECH_DISCOVERED 意图触发/启动数据捕获/接收。我隐约记得当 PUSH 完成时触发了上述意图之一。虽然,每次传输都需要“触摸”才能开始发射。

于 2013-03-25T09:15:23.467 回答
-1

https://developer.android.com/preview/api-overview.html

我认为它将在 L 中可用!

NFC 增强功能

您的应用可以通过调用 android.nfc.NfcAdapter.invokeBeam() 来调用用户设备上的 Android Beam 来共享数据。这避免了用户手动将设备轻敲另一台支持 NFC 的设备来完成数据传输的需要。

于 2014-09-21T20:46:04.813 回答