2017-05-17 1 views
0

Ich habe eine einfache App geschrieben, die Android Wear Messaging API verwendet. Ich folgte einer Reihe von Leitfäden, die alle einen ähnlichen Code verwenden, um die Nachricht mit einigen Daten zu senden, die in der Form byte [] sein sollten.Android Wear Message API Codierung und Decodierung Byte []

Der Code, um die Nachricht zu senden ist

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

und der Empfangscode ist

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

Diese mit einer Reihe von verschiedenen Führungen zu passen scheint und einige der offiziellen Dokumentation - aber die Variable messageData endet mit [[email protected] anstatt test das ist die Daten, die gesendet wurde.

Ich habe auch explizite Codierung/Decodierung mit

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

aber das wirft ein

java.io.UnsupportedEncodingException versucht Was mit der Codierung oder Decodierung falsch läuft?

Antwort

0

Sie haben die Codierung/Decodierung zu definieren, sondern auch in einem try/catch-Block wickeln, so dass die Empfangs Code wie folgt aussieht,

String messageData = ""; 
    try { 


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

Die Sende Code sieht wie folgt aus;

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