【问题标题】:Is there an NFC API for the Smartwatch 3 (SWR50)Smartwatch 3 (SWR50) 是否有 NFC API
【发布时间】:2015-01-02 09:25:14
【问题描述】:

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

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

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

谢谢,克里斯


TLDR: 对于索尼的新款智能手表 3,基本上是同一个问题:NFC 对开发者有用吗? Is there an NFC API for the Sony SmartWatch 2?

【问题讨论】:

    标签: android nfc wear-os firmware sony-smartwatch


    【解决方案1】:

    我终于拿到了其中一款智能手表。这是我目前发现的。

    1. 扫描 SWR50 作为标签:

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

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

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

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

      • 但是,映射版本号 1.1 (0x11) 确实符合 NFC 论坛提供的任何当前映射版本文档!当前定义的唯一映射版本号是 1.0。

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

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

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

        +--------------------------------------------+ | TNF:外部类型 | |类型:urn:nfc:ext:android.com:pkg | +--------------------------------------------+ |有效载荷:com.google.android.wearable.app | +--------------------------------------------+
      • 块 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 标签的方式进行编码,同时无法从操作系统访问。

    【讨论】:

    • 感谢您对手表的深入分析!它回答了我的大部分问题,并符合我自己对这个问题的发现。我刚刚接受了另一个答案,因为它来自索尼官方并给出了明确的声明。您的回答更加详细,非常感谢!
    • @CM787 您可能想查看我们的博客usmile.at/blog。我将在那里发布我的进一步发现。到目前为止,我可以确认索尼的官方回答,我已经能够检测标签并与手表进行 HCE。
    • 您知道 Android Wear 的最新更新现在是否支持 NFC? PS WiFi 现在应该可以工作了。 SWR50 首次发布时同样不可用
    • 可以确认不支持NFC。我仍然收到此消息:“V/NFC:此设备不支持 NFC”。
    【解决方案2】:

    SmartWatch 3 中有一个功能齐全的芯片。它现在按照 CM787 链接的规范运行(here's a new one 因为旧的似乎已经死了)。

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

    【讨论】:

    • SWR50 的 NFC API 是否已随 Android 5.0.2 打开/发布?
    • 关于 NFC API 何时发布的任何估计?
    • Android Pay 昨天宣布,希望不会太久。
    【解决方案3】:

    不。它说NFC用于规格表上的开机或配对。看起来 3rd 方开发人员这次不会对此有所了解。

    【讨论】:

    • 能否提供此规格表的链接?
    • 这是Spec Sheet 感谢您的帮助!我不敢相信他们不会为开发人员开放它。也许官方方面的规格表之外还有更多消息?
    • 谢谢,很遗憾。
    • @CM787 使用 NDEF 可以做的事情并不能通过蓝牙完成。 NFC 只能携带很小的有效载荷这一事实也是一个限制因素。你到底想做什么? (旁注,如果有答案,别忘了关闭问题)。
    • NFC 的妙处在于它是被动的,而且价格便宜且易于放置在您能想到的任何地方。因此,一旦读取特定(预先知道的)标签,它就非常适合跟踪用户在特定地点。这是我正在考虑的一种情况,BT 不是使用恕我直言的完美技术。当然,一旦问题得到回答,我就会结束这个问题,但我想从索尼那里得到一些官方反馈,说明我们正在谈论什么样的 NFC(标签或功能芯片?),以及是否有机会得到它启动并运行?
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-22
      • 2019-09-14
      • 1970-01-01
      • 2021-06-11
      • 1970-01-01
      • 2014-05-16
      相关资源
      最近更新 更多