【问题标题】:Read NFC tag periodically定期读取 NFC 标签
【发布时间】:2015-01-06 14:30:09
【问题描述】:

我需要定期读取固定在手机背面的 NFC TAG。问题是 android 只会在第一次检测到 TAG 时触发 NFC Intent。我认为这两种可能性中的任何一种都可以解决问题,但不知道android是否允许其中任何一种

1-强制Android读取NFC TAG,但我不知道是否可以,如果可以,这将是最好的解决方案,在这种情况下,我该怎么做?

2- 打开 NFC 适配器,当它打开时它将触发 NFC 检测,我的活动将消耗该意图,但我认为在没有用户交互的情况下以编程方式启用/禁用 NFC 适配器是不可能的(我需要它是自动打开WIFI设置是不可能的)

谢谢!!

【问题讨论】:

  • 这个用例是什么?是否有其他内容写入标签,因此可以定期更改?
  • 不,我需要检查标签是否存在并且没有被删除

标签: android tags nfc


【解决方案1】:

当屏幕关闭或锁定时,无法使用 Android 的读写器模式。除此之外,还有一个应用程序显然可以使这成为可能。阅读this answer,这是一个类似的问题。

【讨论】:

  • 没有人说手机被锁定或屏幕关闭,只是应用程序不在前台。
【解决方案2】:

假设您的应用程序始终处于前台,我会将初始 Tag 对象保留在内存中并定期查询该标签。如果在调用connect() 时抛出异常,则标记已超出范围。

然后将 Tag 对象设置为 null 并监听当标签重新进入手机字段时触发的意图。

【讨论】:

  • 我的应用程序并不总是在前台...它有一个服务可以启动一个不可见的活动来处理标签,我想从这个活动中测试标签是否已连接。
  • 获取在 Intent 中传递给服务的 Tag 对象的句柄,然后将其传递给 Activity,然后定期轮询。
  • 这是不可能的。当屏幕关闭或设备被锁定时,Android 的读写器功能被禁用。
  • 没有人说手机被锁定或屏幕关闭,只是应用程序不在前台。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
相关资源
最近更新 更多