![](/img/trans.png)
[英]Sony SmartWatch 3 (SWR50) no longer returns Sensor.TYPE_LINEAR_ACCELERATION
[英]Is there an NFC API for the Smartwatch 3 (SWR50)
为了确保并首先澄清一下,Smartwatch 3的NFC只是一个嵌入式标签,还是理论上功能齐全的NFC芯片?
希望它不仅仅是一个标签,我们希望使用NFC构建Android Wear应用程序,为此,最大的问题是:
谢谢,克里斯
TLDR:对于sony的新智能手表3来说,基本上是同样的问题:NFC是否可供开发人员使用? 是否有适用于Sony SmartWatch 2的NFC API?
我终于抓住了其中一款智能手表。 这是我到目前为止所发现的。
将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
填充。
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
featureNfc
和featureHce
都是false
,因此android.hardware.nfc和android.hardware.nfc.hce都不可用。
因此,目前SWR50上没有可用的NFC API。
固件分析:
因此, 可能会从硬件端和内核端支持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.