android - NFC:在应用程序启动时读取

标签 android nfc

我正在使用 Mifare NFC 标签,我成功地读取和写入了标签。我的标签只包含一个包名称,这意味着它会启动一个应用程序或转到 Play 商店(如果该应用程序未安装)。

但我正在努力处理以下用例:

我想在应用程序第一次启动时读取标签。不幸的是,用于启动我的应用程序的 Intent 操作来自 MAIN 类型,并且不包含任何 NFC 信息。在应用程序运行时第二次将标签靠近设备,将触发 TECH_DISCOVERED Intent,其中包含我需要的信息。

简而言之:是否可以在第一次使用标签启动应用程序时从标签中获取内容?

最佳答案

如果您在标签上的 NDEF 消息仅包含一个 Android 应用程序记录 (AAR),您将无法在 Intent 中获得标签的句柄。如果您有一个与 NDEF 消息的第一条记录相匹配的 Intent 过滤器,您就会得到它。但是,Android 对 AAR 的处理方式不同:忽略它的 Intent 过滤器,而是启动请求的应用。

您应该创建一个 NDEF 消息,而不是只包含包名称的 AAR,例如,包含一个 URL 记录,然后是 AAR。如果您随后使用 NDEF_DISCOVERED 操作为 URL 添加一个 Intent 过滤器,您将获得一个带有标签句柄的 Intent 。

关于android - NFC:在应用程序启动时读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15356967/

相关文章:

nfc - 如何将任何 APDU 命令从当前选定的小程序传递到另一个小程序?

android - NfcV - 如何获取历史字节,就像在 NfcA 中一样?

android - 如何实现新的Android选择模式,同时保留与Android 2.x的向后兼容性?

java - 使用 java 创建 json/xml 响应 Web 服务的最佳方法是什么

android - 如果应用程序未打开,在 Android 中发送 NFC 标签?

ios - 生成并签署启用 NFC 的 .pkpass 文件而不加密公钥

java-me - 仅当使用诺基亚 SDK 编译时为 "Invalid Application. Delete?"

java - Android fragment 翻译动画显示、隐藏

java - 出现错误无法加载 AppCompat ActionBar,出现未知错误。在 Android Studio 中

java - 使用接口(interface)从 Activity 到 Fragment 进行通信