Code:
package hello;
import java.io.*;
import javax.microedition.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.IOException.*;
import java.io.InputStream.*;
import javax.microedition.io.CommConnection;
import javax.microedition.io.Connector;
/* Die HelloWorld-Klasse ist ein MIDlet */
public class HelloMIDlet extends MIDlet
{
String text;
int ch = 0;
/* Die Klasse Display representiert das Display des
* Mobiltelefons */
Display display;
/* Mit der Klasse Form kann man leicht Elemente auf dem Display
* positionieren */
Form form;
/* Konstruktor */
public HelloMIDlet() {
/* das Display-Objekt holen */
display=Display.getDisplay(this);
}
/* die Methode wird ausgefuehrt wenn das Programm
* vom Handy gestartet wird */
public void startApp()
{
//hier wird nachdem Start, sofort in public void run gesprungen
run();
}
public void run()
{
//Hier wird der Titel gewählt
form=new Form("GPS");
/* neues Form-Objekt instanzieren
* mit Titel */
try
{
CommConnection cc = null;
//hier werden die Com Schnittstellendaten gesetzt
cc = (CommConnection)Connector.open("comm:com4;baudrate=57600");
//hier wird ein Stream geöffnet
InputStream is = cc.openInputStream();
//eine Schleife von 1 nach 200
for(int i = 1; i < 200; i++)
{
//hier wird 1 Zeichen eingelesen
ch = is.read();
//wenn das Zeichen = 0 ist, nichts machen
if (ch==0)
{
}
//ansonsten
else
{
//wird int ch zum string text
text = String.valueOf(ch);
//hier wird es dann ausgegeben
form.append(text);
}
}
is.close();
}
catch (ConnectionNotFoundException cnfe) {
cnfe.printStackTrace();
} catch (IllegalArgumentException iae) {
iae.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
//und angezeigt beim Screen
display.setCurrent(form);
}
/* die restlichen Methoden muessen der Vollstaendigkeit halber
* hier stehen, werden aber noch nicht benutzt! */
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
Mit diesem Code erhalte ich folgenden StackTrace:
javax.microedition.io.ConnectionNotFoundException: com4 port not found!
- com.sun.midp.io.j2me.comm.Protocol.openPrim(), bci=332
- javax.microedition.io.Connector.openPrim(), bci=327
- javax.microedition.io.Connector.open(), bci=3
- javax.microedition.io.Connector.open(), bci=3
- javax.microedition.io.Connector.open(), bci=2
- hello.HelloMIDlet.run(), bci=17
- hello.HelloMIDlet.startApp(), bci=1
- javax.microedition.midlet.MIDletTunnelImpl.callStartApp(), bci=1
- com.sun.midp.midlet.MIDletPeer.startApp(), bci=7
- com.sun.midp.midlet.MIDletStateHandler.startSuite(), bci=269
- com.sun.midp.main.AbstractMIDletSuiteLoader.startSuite(), bci=52
- com.sun.midp.main.CldcMIDletSuiteLoader.startSuite(), bci=8
- com.sun.midp.main.AbstractMIDletSuiteLoader.runMIDletSuite(), bci=161
- com.sun.midp.main.AppIsolateMIDletSuiteLoader.main(), bci=26
COM 4 ist logisch, dass er es nicht findet, da ich es ja über den Emulator laufen lasse.
Aber bei meinem Smartphone bin ich mir zu 99,9 % sicher, dass es der COM Port 4 ist, mit 57600 Baud.
Apropo, das Handy ist ein Smartphone Glofish M800.
Und trotzdem will der code nicht laufen, obwohl es alles richtig compiled