- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 ACR122U 处于卡模拟模式,Android 应用程序必须在检测到模拟标签时启动并发送消息,例如:“Hello”。
当模拟标签并用我的手机扫描它时,它通过使用 android.nfc.action.TAG_DISCOVERED
intent 过滤器捕获它成功打开了应用程序。
对于这种情况,我有三个问题。
问题一
我读到 TAG_DISCOVERED
的优先级最低,您无法确定在标签发现后您的应用程序是否会被选中。使用卡片模拟是使用 android.nfc.action.TAG_DISCOVERED
Intent 过滤器捕获 Intent 的唯一方法,还是有其他(更好的)方法?
问题二
我认为这个问题与问题 1 有关。当我在 PN532 上使用 tgSetData
命令时,我想我只是将纯文本发送到 android 设备。例如:FF 00 00 00 08 D4 8E 61 73 64 61 73 64
发送字符串“asdasd”。在卡仿真中是否也可以发送 NDEF 消息或类似的消息?我想如果这可能的话,问题 1 已经得到回答,因为您可以使用 NDEF Intent 过滤器。
问题三
这个问题是关于应用选择部分的。从第一个 tgGetData
我收到字节 00 a4 04 00 07 d2 76 00 00 85 01 00
。我读到这是应用程序选择。我还注意到在打开 Android 应用程序时不会获得此过程。我猜那可能是因为应用程序是在前面打开的。但是,当我的应用程序不在最前面时,我如何与此响应交互?我目前的互动是这样的:
D4 86
D5 87 00 00 A4 04 00 07 D2 76 00 00 85 01 01 00
D4 8E 61 73 64 61 73 64
(只是一个随机字符串)D5 8F 00 90 00
当应用程序不是开放式时,这不起作用。这是因为这个过程是错误的还是我在 Android 中的处理是错误的?
欢迎提供与问题相关的任何信息。
非常感谢!
问候。
最佳答案
问题一
在前台调度中使用 TAG_DISCOVERED
非常好。在这种情况下,您的 Activity 优先于其他应用,TAG_DISCOVERED
是一个简单的包罗万象的机制。
但是,您通常应该不在您的 list 中使用TAG_DISCOVERED
作为 Intent 过滤器。在那种情况下,TAG_DISCOVERED
充当回退并仅捕获未被任何其他应用程序的 Intent 过滤器处理的标签。 (实际上 TAG_DISCOVERED
是为了向后兼容非常有限的第一代 Android NFC API。)
在这种情况下,您可以将 TECH_DISCOVERED
Intent 过滤器与 NfcA
或/和 IsoDep
的技术过滤器文件结合使用。 (ACR122U 将在 IOS/IEC 14443 Type A(= NfcA
)之上模拟 ISO/IEC 14443-4 卡(= IsoDep
)。)
问题二
发送 NDEF 消息并不是那么容易,但是使用您的模拟标签作为 NFC 标签(包含 NDEF 消息)可以完成。 ACR122U 模拟 ISO/IEC 14443-4 标签。因此,您需要在标签端实现 NFC 论坛 4 类标签操作规范,以便将模拟标签用作包含 NDEF 消息的 NFC 论坛 4 类标签。查看NFC Forum's freely available specifications了解更多详情。您可能还想看看 ISO/IEC 7816-4,它定义了基于 APDU 的协议(protocol)和在 ISO-DEP 传输协议(protocol)上使用的应用程序结构。
一旦你实现了这样的标签,你当然可以使用 NDEF_DISCOVERED
Intent 过滤器。
问题三
请参阅 ISO/IEC 7816-4,了解 APDU 和智能卡应用程序结构的工作原理。您从 Android 设备收到的命令
00 A4 04 00 07 D2 76 00 00 85 01 01 00
是 NFC 论坛 4 类标签应用程序(版本 1.1)的 SELECT 命令。 Android 设备会自动发出该命令(通常还有一些其他命令,请参阅 NFC 论坛 Type 4 标签操作规范)以检查标签是否包含 NDEF 消息。当您收到这样的命令时,您应该根据 ISO/IEC 7816-4 使用适当的状态代码进行回答(例如 6A82
,这意味着未找到文件或应用程序)。
虽然通过 ISO-DEP 传输非标准(即非 ISO/IEC 7816-4)帧(如您的情况下的纯 ASCII 文本)有效,但我强烈建议遵守 ISO/IEC 7816-4 以便工作在 Android 设备上流畅运行。
关于android - 安卓应用与ACR122U卡仿真交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25415219/
场景:我在 ACR(azure 容器注册表)中有 4 个存储库,每个存储库中有多个图像。我想将所有存储库和其中的所有图像移动到不同的 ACR(azure 容器注册表)我所做的:我使用以下命令将 ACR
场景:我在 ACR(azure 容器注册表)中有 4 个存储库,每个存储库中有多个图像。我想将所有存储库和其中的所有图像移动到不同的 ACR(azure 容器注册表)我所做的:我使用以下命令将 ACR
每当我运行 az acr login -n 时,我都会收到以下消息: 来自守护程序的错误响应:获取“https://acrau*****.azurecr.io/v2/”:net/http:WAITIN
我们已经开始将产品从这一庞大的整体中剥离到 Azure 中。产品也可以称为微服务。 我们有一个问题 - 我们应该有一个 Azure 容器注册表 (ACR) 来服务所有不同的产品,还是每个产品都应该有自
我创建了一个仅具有 AcrPull 角色的私有(private)注册表,如下所示: 但是当我建立自己的形象并PUSH时,效果很好! (而不是拒绝我) 我想知道为什么? (因为它只有 AcrPull 而
应用程序使用 docker CLI 构建镜像,然后将镜像推送到 azure 容器注册表。过去使用 python 模块和 docker.sock 在 Kubernetes 上运行良好。但自从集群升级后,
我们有一个在 Azure 云上运行的 ACR,其中有多个 Repos,它最近被迁移。我们面临的挑战是我们希望在 ACR 上应用类似于 Nexus 的存储库访问控制,我们希望与 Azure Active
我有一个服务主体,它具有订阅的所有者访问权限,禁止进行一些网络操作。在同一个订阅中,我有一个资源组,我在其中创建了 ACR。我正在尝试使用我的服务主体登录 acr,但它抛出“访问被拒绝”错误。 由于
我正在尝试执行以下针对根文件夹中的 Dockerfile 的 Azure CLI 命令。 az acr build --registry --image myimage:latest . 我得到一个
我在 ACR 中托管了一些镜像,我想检查 ACR 中部署的镜像(存储库镜像)。 例如,我在“test123”ACR 中有一个“hello-world”图像。我想检查 ACR 图像并读取图像的 json
我正在尝试创建一个容器并将其推送到 Azure 容器注册表。我已经创建了一个容器组和服务原则,但我无法让 docker Push 工作。 > docker login azure --client-i
有一个关于 Azure 需要通过从 AZ 从 azure 容器注册表中提取镜像来部署 azure 容器应用程序的问题 步骤: 1- az login -successful 2- az acr log
我正在我的组织中试用 Bicep 和容器应用程序,我们已经在同一租户内但在不同的订阅中分离出了问题,如下所示: 开发 生产 管理 我希望能够使用 Bicep 脚本(每个订阅都有一个单独的脚本)部署每个
我正在尝试使用 cli 对 Azure 容器注册表进行身份验证。我使用主题名称和颁发者身份验证,并通过服务主体向 azure 进行身份验证。 这就是我登录 Azure 时所做的事情 az login
Azure 容器注册表 (ACR) SKU 之间有什么区别? CLI 将这些列为选项: -sku {Basic,Managed_Basic,Managed_Standard,Managed_Premi
我正在我的组织中试用 Bicep 和容器应用程序,我们已经在同一租户内但在不同的订阅中分离出了问题,如下所示: 开发 生产 管理 我希望能够使用 Bicep 脚本(每个订阅都有一个单独的脚本)部署每个
我正在尝试使用 cli 对 Azure 容器注册表进行身份验证。我使用主题名称和颁发者身份验证,并通过服务主体向 azure 进行身份验证。 这就是我登录 Azure 时所做的事情 az login
Azure 容器注册表 (ACR) SKU 之间有什么区别? CLI 将这些列为选项: -sku {Basic,Managed_Basic,Managed_Standard,Managed_Premi
我正在使用Azure CLI v2.0.62。 我在 Azure 中的单个帐户上有多个订阅 - S1、S2、S3、S4。 我正在执行以下脚本以将动态值插入存储库: az login az acr bu
我正在尝试使用 OCI 注册表 (ACR) 来存储我的 helm 图表。我找到了推送和拉取图表的方法,但我无法以 OCI native 方式登录注册表。 目前我可以通过以下方式登录: az acr l
我是一名优秀的程序员,十分优秀!