Java J2ME: Empfang einer SMS

DadyCool

Well-known member
ID: 81813
L
30 April 2006
601
19
Hey,

evtl kennt sich ja jemand damit aus: ich habe ein kleines Problem:
Ich bin nach diesem Tut vorgegangen:
https://www.ibm.com/developerworks/wireless/library/wi-extendj2me/

Mein Problem ist: das in msg nur die Referenz drin steht und nicht die eigentliche Nachricht. Also statt "test msg" habe ich [B@f100...

Code:
 if (msg instanceof BinaryMessage) {
                BinaryMessage bmsg = (BinaryMessage)msg;
                byte[] data = bmsg.getPayloadData();
                //  Handle the binary message...
	        msgReceived = data.toString();
                msg.setText(msgReceived); 
        }

Die Sms kommt von smstrade: auf Port 50001
https://gateway.smstrade.de/?key=ge...MSTRADE&messagetype=binary&udh=060504C351C351


Also wie komme ich in Java nun an die Daten ran... *verwirtIchbin*

mfg
DadyCool
 
Auf Arrays gibt es in Java für gewöhnlich keine native toString()-Methode, deshalb greift die der Oberklasse - und das ist "Object".
Die Implementierung von toString() in Object sieht so aus:

Code:
public String toString() {
	return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

Und das ist auch die Erklärung dafür, dass Du Kauderwelsch bekommst nach dem toString() Aufruf.

Versuch mal "msgReceived = new String(data);". String wiederum hat nämlich einen Konstruktor, der mit einem byte-Array umgehen kann. Ob das was sinnvolles ausspuckt kann ich Dir allerdings nicht sagen, hab ich noch nie ausprobiert.