Android Wear从DataLayer接收旧值

时间:2016-01-29 15:48:45

标签: android wear-os android-wear-data-api

我在掌上电脑上使用WearableListenerService来检索可穿戴设备的数据。我最近更新了我的代码,并从发送大量DataMap个对象切换到一个持有字节数组的DataMap

代码正在运行,但在我继续测试时,我开始在可穿戴设备上获得一个空字节数组。这是我允许的情况,但我检查了掌上电脑上的DataMap并且 正在发送数据。

所以我将手持设备和可穿戴设备上的代码切换回一组DataMap对象的旧实现。设备正在发送正确的数据,但是可穿戴设备会引发java.lang.ClassCastException,并声明byte[] cannot be cast to java.lang.String。所以可穿戴设备仍然是我之前获得的空字节数组。

我正在测试可穿戴模拟器,我没有可以测试的物理设备。难道我做错了什么?有没有办法确保数据层有更新数据?

2 个答案:

答案 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

上的说明重新开始