【问题标题】:Intercept Intent before Android delegates it (NFC)在 Android 委托之前拦截 Intent (NFC)
【发布时间】:2025-12-30 09:20:15
【问题描述】:

我有一个可以读取 NFC 标签的应用。到目前为止,这工作正常 - 当 NfcAdapter.ACTION_TAG_DISCOVERED Intent 被触发时,我的 Activity1 开始了。

现在我有一个 Activity2,如果 Activity2 在前台,它应该读取 NFC 标签。所以我想让 Activity2 监听 NFC Intent 并拦截 Intent,这样 Activity1 就不会启动 - Activity2 已经处理了 Intent。

目前 Activity1 在 Android Manifest 中分配了 NFC Intent,因此始终从应用接收所有 NFC。

背景:我有一个应用程序可以读取客户的 NFC 卡并启动客户详细信息活动。现在,如果需要特权功能,我想拥有应该用作登录名的管理员卡。所以我会启动一个“login-NFC-listener”,让管理员通过 Admin-Card 进行身份验证。目前的情况是每次都会启动客户详细信息活动,而不是我的登录处理。

非常感谢! :)

【问题讨论】:

    标签: android android-intent android-activity nfc rfid


    【解决方案1】:

    这比我想象的要明显: http://developer.android.com/guide/topics/connectivity/nfc/advanced-nfc.html#foreground-dispatch

    我认为这将是解决方案。

    【讨论】:

    • 看起来差不多。我相信您甚至可以实施 AAR 以确保您的应用仍然启动,并且这仍然可以正常工作,因为您的活动都来自同一个应用...