我目前正在开发一个用于扫描身份证的应用程序。基本上,除了一件事之外,我的一切都正常工作:每当 Tag 靠近手机时,无论当前正在运行的其他应用程序是什么,我的 Activity 都会被调用。但是,我希望仅当告诉用户扫描其身份证的 Activity 处于焦点时才读取标签。
我已经尝试通过在用户启动 Activity 时设置 boolean 值 true 来实现此行为,而不是扫描 NFC 标签,并在暂停/停止时设置 boolean 值 false,但是一旦标签正在扫描使我的尝试无用。
(在应用程序 NFC Tools 中可以观察到与我试图实现的行为类似的行为,其中告知用户将焦点切换到正确的 Activity 以扫描标签。如果放置了标签靠近手机,而在应用程序之外没有采取任何行动。)
很高兴看到您对此主题的看法。
最佳答案
不要在 AndroidManifest.xml 中注册 Intent 过滤器,而是使用 enableForegroundDispatch
和 disableForegroundDispatch
方法。您可以在此处找到更多详细信息:http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.html#foreground-dispatch
关于java - 仅从特定 Activity 扫描 NFC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24798989/