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());
}
我编写了一个使用 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());
}