我阅读了文档,但我并不完全理解这些内容。考虑到Android做出了令人费解的决定,我们现在需要使用Android Beam将数据从一部手机发送到另一部手机,并且无法同时将数据从两者发送到两者,我也看不到使用。
我只能在一部手机上拨打setNdefPushMessage
,并在另一部手机中进行onNewIntent
回叫,如果NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())
为真,则会执行某项操作吗?
enableForegroundDispatch
和disableForegroundDispatch
有什么意义?
答案 0 :(得分:13)
enableForegroundDispatch
通过所有其他活动为您提供当前前景活动优先接收NFC事件。
例如,请考虑以下示例:
您的活动和其他活动(来自同一应用或其他应用)在清单中为相同的 NDEF记录类型注册了一个意图过滤器。
您的设备会收到包含该记录类型的NDEF消息作为其第一条记录。
如果当前前台活动未向前台调度系统注册,则会显示活动选择器,用户可以在两个活动中进行选择。
但是,如果当前的前台活动确实向前台调度系统注册(接收该类型的记录),它将优先于所有明显注册的意图过滤器,并将收到NDEF消息,而无需任何额外的用户互动。
更多事情:
如果附加到NDEF消息,Android应用程序记录(AAR)将具有类似的效果,因为它会强制将NDEF消息仅传递到特定应用程序。
如果NDEF消息包含针对其他应用的AAR,您仍然可以使用前台调度系统强制将NDEF消息传递到您的应用。因此,前台调度优先于AAR。
请注意,前台调度系统不仅用于点对点模式数据交换,还用于读取NFC标签。在这种情况下,存在不包含NDEF消息的标签,因此,更有可能导致为同一标签类型注册多个活动。因此,在这种情况下,将您的活动优先于针对相同标签类型注册的任何其他活动更为有用。