java - 仅从特定 Activity 扫描 NFC

标签 java android nfc

我目前正在开发一个用于扫描身份证的应用程序。基本上,除了一件事之外,我的一切都正常工作:每当 Tag 靠近手机时,无论当前正在运行的其他应用程序是什么,我的 Activity 都会被调用。但是,我希望仅当告诉用户扫描其身份证的 Activity 处于焦点时才读取标签。

我已经尝试通过在用户启动 Activity 时设置 boolean 值 true 来实现此行为,而不是扫描 NFC 标签,并在暂停/停止时设置 boolean 值 false,但是一旦标签正在扫描使我的尝试无用。

(在应用程序 NFC Tools 中可以观察到与我试图实现的行为类似的行为,其中告知用户将焦点切换到正确的 Activity 以扫描标签。如果放置了标签靠近手机,而在应用程序之外没有采取任何行动。)

很高兴看到您对此主题的看法。

最佳答案

不要在 AndroidManifest.xml 中注册 Intent 过滤器,而是使用 enableForegroundDispatchdisableForegroundDispatch 方法。您可以在此处找到更多详细信息:http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.html#foreground-dispatch

关于java - 仅从特定 Activity 扫描 NFC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24798989/

相关文章:

java - 如何在 Android Studio 中从 Activity 类外部调用/使用文件?

java - MySQL - 多线程更新(没有线程更新相同的id)但有死锁

java - SNMP4J 获取和设置值

android - 如何从 Android 3 轴加速度计中的加速度计读数中删除重力因子

android - 你如何读取 Android 上 NFC 标签的唯一 ID?

java - 我是否需要显式释放使用 CDI 创建的上下文 JDialog?

java - gradle 脚本中的实现错误 - android studio api28

android - 为什么 Chrome 开发者工具在模拟移动设备时设置这么大的视口(viewport)大小?

java - 具有 NFC 功能的 GSM 手机 SIM 卡上的应用程序可连接到 Android 应用程序

java - 是否可以像 Google 钱包一样使用 NFC?