根据这个答案 https://stackoverflow.com/a/9235624/115145经测试验证,当您使用 Android Beam 推送包含 AAR 记录的 NFC 消息时,接收设备将启动MAIN
/LAUNCHER
AAR 中指定的应用程序的活动。
That MAIN
/LAUNCHER
Intent
不包含NfcAdapter.EXTRA_NDEF_MESSAGES
额外的。因此,如果您使用 AAR,我们千辛万苦传输过来的数据似乎会丢失。
在这种情况下,是否有某种方法可以获取触发应用程序启动的 NFC 消息?
如果答案是否定的,那么 AAR 的用例是什么?我可以看到,当接收设备上不存在所需的应用程序(打开 Play 商店)时,它可能会有帮助,但是一旦安装了该应用程序,AAR 就会阻止任何将数据从一个设备传送到另一个设备的尝试,即这就是 NFC 背后的要点。
Thanks!
冒着回答我自己的问题的风险,让它发挥作用的一个秘诀(显然)是:
让 Beam 发送器使用带有两个 NFC 记录的 NFC 消息,第一个包含唯一 MIME 类型的内容,第二个是 AAR
-
让光束接收者有一个<intent-filter>
响应第一个 NFC 记录的活动,例如通过:
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="application/vnd.commonsware.webbeam"/>
</intent-filter>
如果该应用程序已存在,则NDEF_DISCOVERED
Intent
将被使用,接收者可以拾取NFC消息并从初始记录中提取数据。如果应用程序不存在,AAR 将启动,打开 Play 商店(无论您的应用程序是否通过 Play 商店分发)。
这是所示的食谱在开发者网站上的 Android Beam 示例中 http://developer.android.com/guide/topics/nfc/nfc.html#p2p.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)