Android 如何将两种类型的信息写入nfc标签,并使阅读器同时读取它们?

Android 如何将两种类型的信息写入nfc标签,并使阅读器同时读取它们?,android,uri,wifi,nfc,ndef,Android,Uri,Wifi,Nfc,Ndef,我正在做一个移动编程项目。该移动程序旨在写入uri信息,如uri有效载荷和wifi凭据,以便当您点击nfc标记时,可以连接到wifi并在浏览器中打开uri 我已经测试过将两个信息写入一个nfc标签,但它似乎不能同时提供两个操作 如果项目成功点击nfc标签,手机必须弹出wifi连接并在浏览器中打开uri。 如果有人有线索的话,我会很乐意跟随 NDEF消息由NDEF记录组成。在这种情况下,消息应包括4条记录,即: URI记录类型表示 建议的行动记录 标题记录 WifiSimpleC配置记录由Wi-F

我正在做一个移动编程项目。该移动程序旨在写入uri信息,如uri有效载荷和wifi凭据,以便当您点击nfc标记时,可以连接到wifi并在浏览器中打开uri

我已经测试过将两个信息写入一个nfc标签,但它似乎不能同时提供两个操作

如果项目成功点击nfc标签,手机必须弹出wifi连接并在浏览器中打开uri。
如果有人有线索的话,我会很乐意跟随

NDEF消息由NDEF记录组成。在这种情况下,消息应包括4条记录,即:

  • URI记录类型表示
  • 建议的行动记录
  • 标题记录
  • WifiSimpleC配置记录由Wi-FiAlliance Mime类型为应用程序/vnd.wfa.wsc()
  • 由前3条记录组成的NDEF消息如下所示。请自行更新以包含第四条记录。
    ----------
    偏移量内容长度解释
    0 0xD1 1 NDEF标头。TNF=0x01(众所周知的类型)。SR=1,MB=1,ME=1
    1 0x02 1记录名称长度(2字节)
    2 0x30 1智能海报数据的长度(48字节)
    3“Sp”2记录名称
    5 0x81 1 NDEF头。TNF=0x01,SR=0,MB=1,ME=0
    6 0x01 1记录名称长度(1字节)
    7 0x00,0x00,0x00,0x0C 4 URI有效负载的长度(12字节)(长格式)
    11“U”1记录类型:“U”
    12 0x03 1缩写:“http://”
    13“example.com”11 URI本身。
    24 0x11 1 NDEF记录头(SR=1,TNF=0x01)
    25 0x03 1记录名称的长度
    26 0x01 1“act”有效负载的长度。
    27“act”3记录类型:“act”
    30 0x00 1操作=启动浏览器
    31 0x11 1 NDEF记录头(SR=1,TNF=0x01)
    32 0x01 1记录名称的长度
    33 0x12 1记录有效负载的长度(18字节)
    34“T”1记录类型:“T”(=文本)
    35 0x05 1个文本状态字节(UTF-8,五字节代码)
    36“en US”5 ISO语言代码:美国英语
    41“Hello,world”12文本:“Hello world”,以UTF-8编码。
    ----------

    要回答您的问题,即是否有可能让Android reader处理这些多条记录,我们应该查看
    此系统创建具有
    -action=NfcAdapter.action\u NDEF\u DISCOVERED
    -MimeType=第一条记录的MimeType
    -Intent的额外NfcAdapter.Extra\u NDEF\u消息包含完整的NDEF消息
    因此,Android只填充第一条记录的mimetype。

    剩下来的就是应用程序或服务,它将根据需要处理所有NDEF记录。

    感谢您的深入解释!我已经体验到,默认情况下,没有任何第三方应用程序,原生android nfc阅读器读取第一个遇到的mime类型。我无法让android同时读取两种类型的MIMEType,我很好奇以前是否有人这样做过,因为这个项目需要在没有第三方应用的情况下这样做!