在我的应用中,我想使用MessageAPI在手机和佩戴设备之间进行通信。 要发送数据,我使用DataMap:
从手机发送讯息:
MessageApi.SendMessageResult result = Wearable.MessageApi.sendMessage(
googleApiClient, nodes.get(0), SharedConstants.Paths.PATH_WEAR_NOTIFICATION, dataMap.toByteArray()).await();
在磨损设备上阅读消息(WearableListenerService,onMessageReceived()):
byte[] data = messageEvent.getData();
DataMap dataMap = DataMap.fromByteArray(data); <--- crashes
我得到例外:
FATAL EXCEPTION: WearableListenerService
Process: com.aaa.bbb, PID: 20375
java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
at java.util.ArrayList.get(ArrayList.java:308)
at com.google.android.gms.internal.pb.a(Unknown Source)
at com.google.android.gms.internal.pb.a(Unknown Source)
at com.google.android.gms.wearable.DataMap.fromByteArray(Unknown Source)
at com.aaa.bbb.services.NotificationWearableListenerService.onMessageReceived(NotificationWearableListenerService.java:74)
at com.google.android.gms.wearable.WearableListenerService$a$2.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.os.HandlerThread.run(HandlerThread.java:61)
但是,字节数组不为空。
有谁知道为什么会发生这种情况?
修改
经过多次测试后,我注意到一旦我从有效载荷中删除了一个图像,就会停止崩溃。使用DataAPI时,使用相同的有效负载。 在documentation 100千比特或千字节中指定的MessageAPI的限制是什么?