3

我曾经NFC将文本记录从设备 Nr.1 上的应用程序发送到设备 Nr.2 上的应用程序。然后设备处于联系状态,在两个设备上都会弹出“touch to beam” UI。如果我在设备 Nr.1 上触摸并发送消息(发送部分 ot 对) - 消息已发送,一切正常。但是,如果我在设备 Nr.2 上触摸“触摸发送” UI(它应该会收到消息) - 那么我在设备 Nr. 上的应用程序。1 重新加载。Logcat 显示没有错误,没有错误。似乎,那个案例应用程序会收到某种空NFC消息吗?但为什么它只是对此无所作为?为什么要重载?我正在使用ForegroundDispatch,以编程方式创建“文本/纯文本”过滤器,没有清单。

我该如何处理这种情况,然后用户按下“触摸发送”用户界面的错误一侧?

4

1 回答 1

0

如果您没有在您的应用程序中设置 Android Beam,则 Android 发送时的默认行为是指示另一台设备打开同一个应用程序(第一个 Activity 过滤与该应用程序具有相同包名称的应用程序的 MAIN/LAUNCHER Intent在源设备上),或者如果您的应用尚未安装,请打开 Play 商店列表。这是通过在 Beam 上发送 AAR(+ Play 商店链接?)来完成的。

因此,在您的情况下,单击设备 2 上的 Beam UI 会导致 AAR 发送到设备 1。因此,您的应用程序将在设备 1 上(重新)打开。为了克服这个问题,您可以执行以下操作:

  1. 为设备 1 上的活动启用前台调度,以便您的应用程序立即处理收到的 NDEF 消息。我不确定这是否与 Beam UI 冲突。
  2. 使用 Beam API 将设备 2 发送的 NDEF 消息更改为不包含 AAR 的消息。
于 2014-04-24T11:06:53.623 回答