Android NFC,在发现时将标签传递给不同的侦听器

Android NFC,在发现时将标签传递给不同的侦听器,android,android-intent,nfc,discovery,Android,Android Intent,Nfc,Discovery,我有一个NFC应用程序,它在清单中设置了所有适当的意图过滤器,只响应特定类型的NFC技术 这部分可以工作,但我不明白如果另一个应用程序有完全相同的过滤器,它会做什么 当扫描时,我的应用程序会从onDestroyed()弹出(或根本不运行)到onCreate()并从标记中读取信息,我的应用程序会忽略所有nfc标记(特定类型的标记除外) 现在,我的标签中的信息会进一步过滤这些内容,我会在我的应用程序中查找一种特殊的字符串。但不幸的是,这需要它在确定它是哪种技术之后读取标签。如果它不是我的一个字符串,

我有一个NFC应用程序,它在清单中设置了所有适当的意图过滤器,只响应特定类型的NFC技术

这部分可以工作,但我不明白如果另一个应用程序有完全相同的过滤器,它会做什么

当扫描时,我的应用程序会从onDestroyed()弹出(或根本不运行)到onCreate()并从标记中读取信息,我的应用程序会忽略所有nfc标记(特定类型的标记除外)

现在,我的标签中的信息会进一步过滤这些内容,我会在我的应用程序中查找一种特殊的字符串。但不幸的是,这需要它在确定它是哪种技术之后读取标签。如果它不是我的一个字符串,那么这个应用程序就会消失——但我不明白如果另一个应用程序正在寻找同样的技术,会发生什么

我更愿意看到的是,我的应用程序在看到这个标签时被加载,但在忽略它之后就消失了。然后,其他具有完全相同的过滤器集的应用程序可以加载并按标签进行操作。但我不明白这是如何处理的,我可以预见许多NFC应用程序将进入市场

我很感激你的洞察力

但我不明白如果另一个应用程序正在寻找同样的技术会发生什么

据推测,用户将看到一个活动选择器

我更愿意看到的是,我的应用程序在看到这个标签时被加载,但在忽略它之后就消失了。然后,其他具有完全相同的过滤器集的应用程序可以加载并按标签进行操作

如果我的活动选择器猜测正确,那么唯一可行的方法是:

  • 安装应用程序并点击相关标记后,用户选择应用程序作为此类NFC标记的默认处理程序,并且

  • 在确定它不是您的标记类型后,您可以使用
    PackageManager
    queryIntentActivities()
    等工具,为任何其他相关活动弹出自己的手动活动选择器,将自己从列表中筛选出来

  • 但我不明白这是如何处理的,我可以预见许多NFC应用程序将进入市场


    我预计,大多数NFC应用程序将集中在NDEF兼容的标签上,这使得这一点更加简单。

    活动选择器确实会显示是否有多个应用程序可以处理该操作。如果我正确理解了您的问题,您真的无法阻止activity chooser显示多个应用程序是否可以处理标记,除非您使用前台调度,如果您的应用程序位于前台,它可以让您的应用程序处理目的。它将取代任何其他可以处理它的应用程序,而不显示活动选择器。如果在检查数据并发现它不是你想要的标签后,我认为你可以潜在地传播意图,以便其他应用程序可以尝试处理它。退房:

    了解更多信息