有没有办法通过DataApi或Message API传递我的自定义对象?

时间:2014-08-19 21:27:12

标签: android wear-os

我的移动应用程序调用JSON服务并将JSON转换为我已创建的自定义对象。有没有简单的方法将List<MyObject>传递给手表?

我查看了DataMap对象,但我没有看到一个简单的方法。看起来我的选择是将我的对象序列化为JSON并作为String发送或将我的对象转换为List<DataMap>

框架有什么办法可以帮我吗?

感谢。

2 个答案:

答案 0 :(得分:1)

我真的不这么认为。我认为将我的(Parcelable)自定义对象存储到Bundle并使用dataMap.toBundle()和DataMap.fromBundle()会很聪明,但它不起作用。这些方法只是忽略Bundle中已经不属于DataMap api的任何东西!

答案 1 :(得分:1)

我使用协议缓冲区解决了这个问题。 Square人拥有一个用于Android(https://github.com/square/wire)的紧凑protobuf库,这使得这非常简单。您为要通过线路发送的消息编写.proto文件,编译器会为您生成Java类。您可以使用任何内容,事物列表等加载这些类,并且生成的代码包括将数据结构转换为字节数组并再次返回的方法。一旦你获得了一个字节数组,你就可以随意来回运送它们。