J2Me - integrierte GPS Maus vom Smartphone

§Alptraum§

Erfahrenes Mitglied
Hallo zusammen,
da ich jetzt schon mal mein erstes GPS Programm in Java geschrieben habe,
wollte ich es auch für mein Smartphone umsetzen,
jedoch finde ich nirgendswo Programmiercodebeispiele zur Ansteuerung einer integrierten GPS Maus.

Ich denke mal, dass sie bestimmt auch als Com Schnittstelle angesprochen wird, jedoch nicht wie unter Windows, da es ja auf dem Smartphone Windows Mobile hat.

Vielleicht weiss jemand, wie es geht..

Cu Andy
 

§Alptraum§

Erfahrenes Mitglied
Also, auf dem Smartphone ist Windows Mobile installiert.
Dann habe ich auch das Smartphone Java Fx installiert.

Anwendungen "JAD Dateien" funktionieren, jedoch finde ich keine Anwendung um eine integrierte GPS Maus abzufragen.
Also ich will Daten von der GPS Maus holen.

Achso, programmieren tue ich mit Jave Me.

Cu Andy
 

§Alptraum§

Erfahrenes Mitglied
Hab ein bischen programmiert und dabei kam zwar ein einigermasen gescheiter Code bei raus, aber ich habe ein try catch Problem.
Das Problem springt sofort in catch und durchläuft noch nicht einmal das try.
Könnte mir jemand helfen?

Hier der Code:


Code:
package hello;

import java.io.*;
import javax.microedition.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/* 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");


CommConnection cc = null;
    /* neues Form-Objekt instanzieren
     * mit Titel */
        try
        {
                //hier werden die Com Schnittstellendaten gesetzt
        cc = (CommConnection)Connector.open("comm:com1;baudrate=4800");

                //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();
        }
        //läuft es mit Fehler
        catch (IOException ioe)
        {
        //dann Error ausgeben
            form.append("COM ERROR");    
        }
//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) {
    }

}
 
J

Jenson283

Ich bezweifel mal, dass er nichtmals ins try geht, dass Problem wird sein, dass er genau beim ersten Aufruf einen Fehler schmeißt, aber ohne den Stack Trace wird es schwer fallen weiterzuhelfen
 

§Alptraum§

Erfahrenes Mitglied
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
 

Neue Beiträge