繁体   English   中英

是否有适用于Smartwatch 3(SWR50)的NFC API

[英]Is there an NFC API for the Smartwatch 3 (SWR50)

为了确保并首先澄清一下,Smartwatch 3的NFC只是一个嵌入式标签,还是理论上功能齐全的NFC芯片?

希望它不仅仅是一个标签,我们希望使用NFC构建Android Wear应用程序,为此,最大的问题是:

  • 是否(将要?)使用SWR50的NFC芯片的API?
  • 如果没有,还有其他方法可以激活它,或者Android Wear的更新版本是否可以为智能手表带来芯片支持? 任何帮助表示赞赏!

谢谢,克里斯


TLDR:对于sony的新智能手表3来说,基本上是同样的问题:NFC是否可供开发人员使用? 是否有适用于Sony SmartWatch 2的NFC API?

我终于抓住了其中一款智能手表。 这是我到目前为止所发现的。

  1. 将SWR50扫描为标签:

    SWR50被识别为Broadcom制造的NFC论坛类型2标签。 我测试的手表的7字节UID是2e020d00000000 两者,我无法从Broadcom找到任何专用的Type 2标签和UID中的多个零,这让我觉得这可能是使用某些NFC控制器模拟的标签。

    标签有122个块(总共4个字节,总共488个字节),包含以下数据:

    \n  0:2e 02 0d 0c 1:00 00 00 00\n  2:00 00 ff ff 3:e1 11 3c 0f\n  4:00 00 00 01 5:03 78 30 35\n  6:03 31 d4 0f 7:1f 61 6e 64\n  8:72 6f 69 64 9:2e 63 6f 6d\n 10:3a 70 6b 67 11:63 6f 6d 2e\n 12:67 6f 6f 67 13:6c 65 2e 61\n 14:6e 64 72 6f 15:69 64 2e 77\n 16:65 61 72 61 17:62 6c 65 2e\n 18:61 70 70 fe 19:ff ff ff ff\n 20:30 a8 db f2 21:43 1c ff ff\n 22:30 a8 db f5 23:2a 78 ff ff\n 24:14 39 2d 4d 25:f2 6a 91 40\n 26:ff ff ff ff 27:ff ff ff ff\n (其余的块都填充了ff ff ff ff)\n
    • 静态锁定位(块2,字节2和3)全部置位(表示锁定状态)。

    • 块3包含类型2标记的能力容器(魔术字节0xE1 )。

    • 然而,映射版本号1.1( 0x11符合任何由NFC论坛提供的电流映射版本的文件! 当前定义的唯一映射版本号是1.0。

    • 块4包含3个空TLV( 0x00 )和锁定控制TLV(标记0x01 )的第一个字节。

    • 锁定控制TLV指示从字节位置232(= 7 * 2 5 + 8)开始有48个锁定位。 即从块58开始的6个字节,因此它们都被设置( 0xFFFFFFFFFFFF )。 每个锁定位锁定3个字节,因此它们指示块16到51被锁定。

    • 块6包含NDEF消息TLV的开始(标记0x03 ,长度0x31 )。 NDEF消息由单个NDEF记录组成(适用于app.google.android.wearable.app的Android应用程序记录):

      \n + -------------------------------------------- +\n |  TNF:EXTERNAL TYPE |\n |  键入:urn:nfc:ext:android.com:pkg |\n + -------------------------------------------- +\n |  Payload:com.google.android.wearable.app |\n + -------------------------------------------- +\n
    • 块18包含终结符TLV(标记0xFE ),其指示标记存储区域内的最后TLV块。

    • 块20和21(前2个字节)包含设备蓝牙地址。

    • 块22和23(前2个字节)包含看起来像蓝牙地址的东西。

    • 块24和25包含设备序列号。

    • 其余的块都用FF FF FF FF填充。

  2. Android NFC API访问:

    请求NFC适配器的实例失败( getDefaultAdapter()方法返回null):

     NfcManager nfcMgr = (NfcManager)mContext.getSystemService(Context.NFC_SERVICE); NfcAdapter nfcAdapter = nfcMgr.getDefaultAdapter(); // -> null 

    此外,还有一条日志消息,表明该设备不支持NFC。

     V/NFC: this device does not have NFC support 

    查看NFC系统功能,NFC系统功能均不可用:

     PackageManager pkgMgr = mContext.getPackageManager(); boolean featureNfc = pkgMgr.hasSystemFeature("android.hardware.nfc"); // -> false boolean featureHce = pkgMgr.hasSystemFeature("android.hardware.nfc.hce"); // -> false 

    featureNfcfeatureHce都是false ,因此android.hardware.nfc和android.hardware.nfc.hce都不可用。

    因此,目前SWR50上没有可用的NFC API。

  3. 固件分析:

    • 在/ system / vendor / firmware /下有一个名为BCM43341B0_002.001.014.0122.0174.hcd的文件,因此看起来该手表实际上包含Broadcom的BCM43341四射频芯片,该芯片还包含一个NFC控制器。
    • / proc / misc列出了bcm2079x,因此似乎bcm2079x驱动程序已编译到内核中。
    • / system分区上没有NFC服务应用程序(Nfc * .apk)。

    因此, 可能会从硬件端和内核端支持NFC,但缺少NFC堆栈的用户空间部分。 虽然内核驱动程序可能也指向无处。 并且BCM43341的固件可能以NFC控制器简单模拟Type 2标签的方式进行编码,同时无法从操作系统访问。

SmartWatch 3中有一个功能齐全的芯片。它现在按照CM787链接的规范进行操作( 这里的旧版本似乎已经死了)。

当Android Wear正式扩展对NFC的支持时,SmartWatch 3将能够跟随。

不。 它表示NFC适用于规格表上的电源或配对。 看起来不像第三方开发者这次会对它进行破解。

智能手表支持NFC,基于http://www.smartwatchspecifications.com/Device/smartwatch-3-swr50/的规格,但目前还没有NFC API可用,希望会有一个,我也是寻找此功能,计划使用此功能开发应用程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM