Android 穿消息API 编码和解码字节[]

Android Wear Message API Encoding and Decoding Byte[]

我编写了一个使用 Android Wear Messaging API 的简单应用程序。我遵循了一些指南,它们都使用类似的代码风格来发送带有一些数据的消息,这些数据应该是 byte[] 形式。

发送消息的代码是

Wearable.MessageApi.sendMessage(client, nodeId, message, "test".getBytes());

接收码为

final String messageData = new String(messageEvent.getData());

这似乎符合许多不同的指南和一些官方文档 - 但是变量 messageData 最终包含 [B@4b0ad22 而不是 test 这是数据寄了,送了。

我也尝试过 encoding/decoding 和

String messageData = new String(messageEvent.getData(), "UTF-8");

但这会引发 java.io.UnsupportedEncodingException

编码或解码出了什么问题?

您必须定义 encoding/decoding 并将其包装在 try/catch 块中,以便接收代码如下所示,

    String messageData = "";
    try {


        messageData = new String(messageEvent.getData(), "UTF-8");
    }
    catch(Exception e)
    {
        Log.e("DecodingError", e.toString());
    }

发送代码如下所示;

        try {
            Wearable.MessageApi.sendMessage(client, nodeId, message, "test".getBytes("UTF-8"));
        }
        catch(Exception e)
        {
            Log.e("EncodingError", e.toString());
        }