有条件地禁用Android Beam

时间:2012-06-27 02:46:05

标签: android nfc android-beam

这个问题几乎是一个duplicate,但链接的问题从未真正得到解决,而且这个帖子已经有几个月了,所以我不想复活它。

在安装了Android Beam的ICS设备上运行的应用的默认行为是使用将在接收端由Google Play处理的应用Uri推送消息。

我正在尝试开发一个活动,如果条件A为真,它将推送NdefMessage,否则将禁用推送消息。 setNdefPushMessage(...)的API文档似乎表明通过传入空消息可以实现这一点:

  

传递null NDEF消息以禁用指定活动中的前台NDEF推送。

然而,试图通过以下代码简单地禁止所有推送仍然会导致“Touch to Beam”UI出现并且正在发送应用程序Uri ...

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getNfcAdapter().setNdefPushMessage(null, this);
}

有没有人知道实际上是否可以禁用来自活动的推送?一些系统应用程序可以做到,但我无法找到实现此目的的代码。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

这似乎是Android ICS中的一个错误。虽然文档说您应该能够通过将NDEF消息设置为null来禁用它,但这根本不起作用。好消息是它已被修复,现在可以在Android 4.1 Jellybean中运行。