jjzjj

iOS11 核心 NFC 和 ISO 14443

coder 2023-09-23 原文

据我了解iOS11 Core NFC,它只支持NDEF。这是否意味着它只支持 ISO 15693 标签而不支持 ISO 14443(-3 或 -4)?

我知道您可以在 NDEF 中发送 APDU,但那不是 ISO 7816。如果我错了请纠正我。简单地说,CoreNFC 是否支持 ISO 14443 (-3/-4)?

最佳答案

不,Core NFC 根本不限于 ISO/IEC 15693 标签。根据文档 ( Core NFC ),

Using Core NFC, you can read Near Field Communication (NFC) tags of types 1 through 5 that contain data in the NFC Data Exchange Format (NDEF).

所以 Core NFC 似乎只支持 NDEF 格式的标签。 NDEF 是 NFC 数据交换格式,由 NFC Forum 指定的抽象层抽象与不同类型的 NFC 标签硬件的交互和数据存储。目前有五种不同的 NFC 标签平台由 NFC 论坛指定并由 iOS 支持。这些标签类型中的每一种都源自某些在 NFC 诞生之前就已经存在的 RFID (NFC) 标签产品。它们在命令集、内存布局甚至底层 RF 协议(protocol)标准方面有所不同:

  • NFC 论坛标签类型 1:此标签平台源自 Innovision(现为 Broadcom?)Jewel 标签。它基于 ISO/IEC 14443-3A 框架,但不使用该标准的防冲突方案。
  • NFC 论坛标签类型 2:此标签平台源自 NXP MIFARE Ultralight 标签。它基于 ISO/IEC 14443-3A。
  • NFC 论坛标签类型 3:此标签平台源自 Sony FeliCa Lite 标签。它基于 JIS X 6319-4(和 ISO/IEC 18092)。
  • NFC 论坛标签类型 4:此标签平台源自 NXP MIFARE DESFire 标签。它基于 ISO/IEC 14443-4 (ISO-DEP) 传输协议(protocol)(支持 A 类和 B 类)和 ISO/IEC 7816-4 命令 (APDU) 和文件系统结构。
  • NFC 论坛标签类型 5:此标签平台是不同制造商的 ISO/IEC 15693 标签功能之间的协议(protocol)。

因此,Core NFC 在 13.56 MHz HF 频段支持所有这些 NFC/RFID/非接触式智能卡标准的子集。然而,您必须使用通过 NDEF 抽象层公开的功能。这意味着您只能使用这些 RF 标准来读取支持的 NFC 标签上的 NDEF 消息。

此外,虽然 APDU 用于访问类型 4 标签,但您必须绑定(bind)到那些 APDU 和用于从这些标签读取数据的通信序列。您无法自由控制要发送的 APDU。

关于iOS11 核心 NFC 和 ISO 14443,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44424301/

有关iOS11 核心 NFC 和 ISO 14443的更多相关文章

  1. ruby-on-rails - Ruby 检查日期时间是否为 iso8601 并保存 - 2

    我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby​​是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查

  2. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  3. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  4. ruby - 安装libv8(3.11.8.13)出错,Bundler无法继续 - 2

    运行bundleinstall后出现此错误:Gem::Package::FormatError:nometadatafoundin/Users/jeanosorio/.rvm/gems/ruby-1.9.3-p286/cache/libv8-3.11.8.13-x86_64-darwin-12.gemAnerroroccurredwhileinstallinglibv8(3.11.8.13),andBundlercannotcontinue.Makesurethat`geminstalllibv8-v'3.11.8.13'`succeedsbeforebundling.我试试gemin

  5. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  6. ruby - 为什么不能使用类IO的实例方法noecho? - 2

    print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上

  7. ruby - ri 有空文件 – Ubuntu 11.10, Ruby 1.9 - 2

    我正在运行Ubuntu11.10并像这样安装Ruby1.9:$sudoapt-getinstallruby1.9rubygems一切都运行良好,但ri似乎有空文档。ri告诉我文档是空的,我必须安装它们。我执行此操作是因为我读到它会有所帮助:$rdoc--all--ri现在,当我尝试打开任何文档时:$riArrayNothingknownaboutArray我搜索的其他所有内容都是一样的。 最佳答案 这个呢?apt-getinstallri1.8编辑或者试试这个:(非rvm)geminstallrdocrdoc-datardoc-da

  8. ruby - rails 3.2.2(或 3.2.1)+ Postgresql 9.1.3 + Ubuntu 11.10 连接错误 - 2

    我正在使用PostgreSQL9.1.3(x86_64-pc-linux-gnu上的PostgreSQL9.1.3,由gcc-4.6.real(Ubuntu/Linaro4.6.1-9ubuntu3)4.6.1,64位编译)和在ubuntu11.10上运行3.2.2或3.2.1。现在,我可以使用以下命令连接PostgreSQLsupostgres输入密码我可以看到postgres=#我将以下详细信息放在我的config/database.yml中并执行“railsdb”,它工作正常。开发:adapter:postgresqlencoding:utf8reconnect:falsedat

  9. ruby - 为 IO::popen 拯救 "command not found" - 2

    当我将IO::popen与不存在的命令一起使用时,我在屏幕上打印了一条错误消息:irb>IO.popen"fakefake"#=>#irb>(irb):1:commandnotfound:fakefake有什么方法可以捕获此错误,以便我可以在脚本中进行检查? 最佳答案 是:升级到ruby​​1.9。如果您在1.9中运行它,则会引发Errno::ENOENT,您将能够拯救它。(编辑)这是在1.8中的一种hackish方式:error=IO.pipe$stderr.reopenerror[1]pipe=IO.popen'qwe'#

  10. ruby-on-rails - Rails 2.3.11 DateTime BigDecimal 精度 - 2

    我目前有一个运行Ruby1.8.7和Rails2.3.2的RubyonRails项目我有一些从数据库中读取数据的单元测试,特别是两个连续项目的日期时间列,这两个项目应该相隔24小时。在一项测试中,我将项目2的日期时间设置为与项目1的日期时间相同。当我执行断言以确保两个值相等时,测试在rails2.3.2下工作正常。当我升级到rails2.3.11时,测试失败显示两次之间的差异将关闭并出现以下错误:expectedbutwas.这两个版本的rails中似乎存在浮点转换问题。如何解决float问题? 最佳答案 这也发生在我身上,我最终这

随机推荐