我在掌上电脑上使用WearableListenerService
来检索可穿戴设备的数据。我最近更新了我的代码,并从发送大量DataMap
个对象切换到一个持有字节数组的DataMap
。
代码正在运行,但在我继续测试时,我开始在可穿戴设备上获得一个空字节数组。这是我允许的情况,但我检查了掌上电脑上的DataMap
并且 正在发送数据。
所以我将手持设备和可穿戴设备上的代码切换回一组DataMap
对象的旧实现。设备正在发送正确的数据,但是可穿戴设备会引发java.lang.ClassCastException
,并声明byte[] cannot be cast to java.lang.String
。所以可穿戴设备仍然是我之前获得的空字节数组。
我正在测试可穿戴模拟器,我没有可以测试的物理设备。难道我做错了什么?有没有办法确保数据层有更新数据?
答案 0 :(得分:1)
之前我遇到过这个问题,我通过用MessageApi替换DataMap解决了这个问题, 我使用Gson库https://github.com/google/gson(可以用来将Java对象转换为它们的JSON表示)来在移动和磨损之间发送java对象和自定义对象。 我希望这能帮到你
答案 1 :(得分:1)
这是Data API的一个长期存在的问题,虽然它比以前更好,但它仍然会发生。我所知道的唯一解决方案是完全清除数据层,然后按照http://www.tinmith.net/wayne/blog/2014/08/android-wear-total-reset.htm
上的说明重新开始