J2ME - Probleme bei IR-Zugriff...
Geizhals » Forum » Programmierung » J2ME - Probleme bei IR-Zugriff... (25 Beiträge, 116 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
J2ME - Probleme bei IR-Zugriff...
08.11.2006, 14:19:17
Hi !

Aufgabe sei das Kennenlernen von Handy-Handy-Communication via IR... - am Beispiel eines kleinen Tron-Spiels für 2 HandyUser ;-).

Irgendwie Blicke ich da nicht durch:

zum Testen habe ich diesen Code:

    public static void sucheVerbindung(MIDlet midlet) {
        String port;
        
        System.err.println( midlet.checkPermission("javax.microedition.io.Connector.comm"));
        
        String ports = System.getProperty("microedition.commports");

        System.out.println(ports);
        int comma = ports.indexOf(',');
        if (comma > 0) {
            port = ports.substring(0, comma);
        } else {
            port =ports;
        }
        System.out.println(port);
        try {
            commConnection = (CommConnection) Connector.open("comm:0");
            System.err.println(commConnection.getBaudRate());
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }


Die Ausgabe ist folgende:

-1
0,1
0
open failed(0000000D): Permission denied
java.io.IOException: Permission denied
        at com.sun.midp.io.j2me.comm.Protocol.connect(Protocol.java:297)
        at com.sun.midp.io.ConnectionBaseAdapter.openPrim(ConnectionBaseAdapter.java:100)
        at javax.microedition.io.Connector.openPrim(Connector.java:302)
        at javax.microedition.io.Connector.open(Connector.java:211)
        at javax.microedition.io.Connector.open(Connector.java:187)
        at javax.microedition.io.Connector.open(Connector.java:169)
        at hello.Verbindung.sucheVerbindung(Verbindung.java:56)
        at hello.HelloMidlet$1.execute(HelloMidlet.java:143)
        at org.netbeans.microedition.util.SimpleCancellableTask.run(SimpleCancellableTask.java:103)
        at org.netbeans.microedition.lcdui.WaitScreen$BackgroundExecutor.run(WaitScreen.java:206)


Die -1 kommt von  checkPermissions() - und steht für "-1 The permission status is unknown" - paßt also.
Das "0,1" sind die 2 Ports
Das "0" Ist der Port, den ich mir dann suchen würde.

Ab dem Connector.open("comm:0") fragt das Handy, ob man die Verbindung erlauben will - und wenn man ja sagt, kommt obige Exception.... Wenn man auf "Ja, ich erlaube die Verbindung" klickte. Wenn man auf "Nein" tippte, wird eh abgebrochen, weil der Teil als "SimpleCancellableTask" gestartet wurde...

Eine Idee, was hier bei den Permissions nicht klappt ?

Wieso

Antworten PM Übersicht Chronologisch
 
Melden nicht möglich
........
Re(4): zu deinem Source...
08.11.2006, 16:55:07
Nun ja... der SUN-Emulator behauptet mal (k.A., ob die lügen), daß er es kann...

Wobei ich eh grad über was gestolpert bin:

   public static void sucheVerbindung(MIDlet midlet) {
        ClientSession session = null;
        try {
            s
            session = (ClientSession) Connector.open("irdaobex://discover");
            HeaderSet head = session.connect(null);
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        
    }

Liefert immerhin eine bravere Exception:

java.io.IOException: No devices in range
       at com.sun.midp.io.j2me.irdaobex.IRDAOBEXControl.discoverDevices(IRDAOBEXControl.java:420
        at com.sun.midp.io.j2me.irdaobex.IRDAOBEXControl.findDevices(IRDAOBEXControl.java:291
....


Scheint so, als ob COMM nur für Serielle Ports da ist...
Mein Problem ist nur, daß ich ja nicht OBEX fahren will sondern einfach periodisch 2 Bytes (x/y-Pos vom Bike) rüberschicken will ;-)


Ergänzung:
unter com.sun.midp.io.j2me. findet man ja scheinbar die unterstützen Protokolle wie irdaobex, comm, ssl, http, https und so... Wenn ich das richtig kapier, habe ich mit J2ME nur die Chance für OBEX-Clients... Denn das Handy selbst spielt ja den Server...  Shit.

Da bin ich von PalmOS eher verwöhnt... IRDA stellt sich wie eine normale Com-Verbindung dar und du schaffst es problemlos, deinen Serverteil "einzuhängen"...

Nun ja, zu wissen, daß etwas net klappt, ist ja auch was wert - Shice nur, wenn das Stunden dauert ;-).

Dann werde ich mich halt mal mit Blauzahn rumspielen müssen... Shit. Da gibt's sicher wieder um einiges Mehr zu beachten - und mein "MTron"-Helloworld muß von Haus aus mehr User verkraften ;-)

EDIT²:
Scheinbar können - zumindest Sony-Handies - doch irda-Server spielen:
http://developer.sonyericsson.com/site/global/techsupport/tipstrickscode/java/p_part2_server_using_irda_obex_protocol.jsp

Wobei irDA wohl für Handyspiele net sooo super ist... Andererseits haben ja noch net viele bt, oder ???


08.11.2006, 17:15 Uhr - Editiert von Linux_Sucks, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung