在应用内禁用NFC功能

时间:2015-04-13 13:35:08

标签: android nfc

我试图解决的问题如下:

NFC标签会触发我的应用,我将从中启动另一个应用。有时会发生的是NFC标签将移动并将被重新发现"通过电话再次启动我的应用程序。 NFC标签的移动是我无法控制的。

这真的毁了这段经历。

我理想的做法是,一旦我的应用程序启动,NFC触发将被禁用或暂停,一旦应用程序关闭(OnDestroy()),我将启用/取消暂停NFC功能。

我无法找到如何做到这一点,你的帮助将非常感激。如果你有另一种(代码相关的)方法来解决这个问题,那就差不多了。

几年前我注意到这篇文章:NFC disable adapter 但我希望还有另一个解决方案,系统应用程序不是一个选项,并提示用户禁用NFC同样糟糕......

提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以在活动运行时创建一个处理意图的活动别名disable it,并在销毁活动时重新启用它。

答案 1 :(得分:0)

您假设您可以安全地关闭手机的重要功能,并禁用依赖于此功能的任何其他服务和/或应用。

这当然是错的。您应该只对自己的应用做出假设。

所以你真正要做的就是禁用重新启动。这可以通过多种方式完成:

  1. 控制您的主要活动launch mode,从而控制您的整个应用。
  2. 通过监控NFC状态和应用程序的Service正确处理NFC意图。根据@ Michael的评论 - 因为你只能将NFC意图与Activity相关联 - 你必须创建一个非ui Activity(一个不调用setContentView的人)来表达作为此BroadcastListener的{​​{1}}。
  3. Tag your app,正如@Tristan所建议的那样。