J2ME Bluetooth

JaLeo

Mitglied
Hallo Leute,

Hab wiedermal eine Frage ;)
In letzter Zeit beschäftige ich mich mit dem Thema HANDYPROGRAMMIERUNG.
Jetzt hab ich mir so einen kleinen Bluetooth USB Stecker für meinen laptop gekauft, funktioniert sehr gut, und kann somit mit meinem handy kommunizieren.

Jetzt wollte ich mal nur so ein kleines Programmschreiben wo ich mich mit meinem Handy verbinde, nur da gibt mir das programm einen komischen fehler aus (bei dem Serverprogramm für den laptop).
Ich Programmier in ECLIPSE und verwende SUN JAVA WIRELESS TOOLKIT 2.3 beta.
Ich hab schon so glaub ich alle arten von bluetooth APIs verwendet (z.B.: bluesock).
Hat nie funktioniert.

Hier mal das Serverprogramm das auf meinem laptop laufen soll:

Code:
import java.io.DataOutputStream;

import javax.bluetooth.*;
import javax.microedition.io.*;

public class Server {
    private StreamConnectionNotifier connection;
    private LocalDevice localDevice;
    private Thread thread;
	/**
	 * @param args
	 */
    private String str = "Hello from my bluetooth enabled computer!";
    
    private class ClientThread extends Thread
    {
        private StreamConnection m_client;
        
        public ClientThread(StreamConnection client) 
        {
            m_client = client;
        }
        
        public void run()
        {
            try {
                DataOutputStream stream = m_client.openDataOutputStream();

                stream.writeInt(str.length());
                stream.write(str.getBytes());
                stream.flush();

                m_client.openDataInputStream().readInt();
            } 
            catch (Exception g) 
            {
                System.out.println("error: " + g.getMessage());
            }
            finally
            {
                try {
                    m_client.close();
                } catch (Exception g) {}
                }
            return;
        }
    }
    
	public Server(){
		try{
			localDevice = LocalDevice.getLocalDevice();
			connection = (StreamConnectionNotifier)javax.microedition.io.Connector.open("btspp://localhost:C111B1111111111AE1131111DF117112;name=Fernbedienung V1.0;authenticate=true;encrypt=false");
			thread = new Thread(new Runnable()
		            {
		               public void run()
		               {
		                   while (true)
		                   {
		                       try {
		                           System.out.println("waiting for a connection ...");
		                           
		                            StreamConnection client = connection.acceptAndOpen();
		                            if (client == null) {
		                                return;
		                            }
		                            
		                            System.out.println("connection establised");
	
		                            ClientThread thread = new ClientThread(client);
		                            
		                            thread.start();
		                            
		                       } 
		                       catch (Exception e)
		                       {
		                           System.out.println(e.getMessage());
		                           return;
		                       }
		                   }
		               }
		            });
		           
		            thread.start();
		            
		   }catch (Exception e)
		     {
		        e.printStackTrace();
		        System.exit(0);
		     }
	}
		
		
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Server myServer = new Server();
	}

}

und bekomm diese Fehlermeldung

Code:
javax.bluetooth.BluetoothStateException: java.lang.NoClassDefFoundError: com/sun/kvem/jsr082/bluetooth/DiscoveryAgentImpl
	at javax.bluetooth.LocalDevice.getLocalDevice(LocalDevice.java:101)
	at laptop.Server.<init>(Server.java:53)
	at laptop.Server.main(Server.java:97)

Noch ganz kurz.. ich hab das library jsr082 (bluetooth library) schon zum build path hinzugefügt.

Bitte helft mir..

Lg Leo
 
K

kaMii

Ich gehe mal davon aus, das jemandem nach 2 1/2 Jahren eine Antwort nicht mehr viel hilft, aber vielleicht benötigt ja jemand anderes Hilfe bei einem ähnlichen Problem...
 

snubnose

Grünschnabel
Hallo, ich bekomme die J2ME Bluetooth Geschichte auch nicht zum Laufen.

Ich bräuchte einfach mal eine laufende Beispielapplikation (jar/jad + source) - damit ich mit die Midlet-Permissions rausziehen kann und was man sonst noch braucht.

Mein erster versuch was selber zu schreiben scheitert daran, dass es im Emulator läuft (Sun 2.3), aber auf dem Handy macht es nichts.

Konkret hat wenn ich

new BTUtility()

mache passiert gar nicht - keine Exception....

class BTUtility extends Thread implements DiscoveryListener {...}

Vielleicht kann mir da jemand weiterhelfen - das wäre echt klasse
 

Chimaira

Erfahrenes Mitglied
hi,

ich weiß nicht genau, aber kann es sein, dass man die Java ME Librarys nur aufm Handy / PDA / Set-Top-Box zum laufen bekommt?

... new BTUtility() ...

das reine Erwähnen einer Instanzerzeugung hilft in diesem Fall wenig. Kannst du vielleicht noch etwas mehr code posten, damit ich / wir dir eventuell helfen können?

Greeze Chimaira
 
Zuletzt bearbeitet:

snubnose

Grünschnabel
hmmm, also ich hab rausgefunden dass mein Samsung D600E kein JSR-82 implementiert. Aber das hätte dann wenigstens eine Exception werfen können....
Das hat mich viele Stunden gekostet. Anyways....
 

caripito

Grünschnabel
Hallo,

Ich arbeite grad an einer PC-Anwendung in JAVA, die mit einem Remote-Gerät eine Verbindung durch Bluetooh herstellen soll.
Alles läuft richtig in Ordnung:
- Ich kriege es hin, die Information von localDevice zu bekommen
- Ich kann nach Geräte suchen
- Ich kann nach von dem zu verbindenden Gerät Services suchen
- Ich kann die Verbindung zwischen den zwei geräte herstellen

Das Problem kommt wenn der USER ein PIN-Code selber eintragen muss, um die Verbindung fertig zu machen.

Ich will es nicht. Ich will, dass meine Anwendung die ganze Transaktion bzw. die Übertragung des PIN-Codes automatisch erledigt.

Der ganze prozess MUSS unsichtbar zu dem Benutzer.

Kann jemand von Euch mir helfen

ich bedanke mich mehrmals und warte auf ihre Vorschläge

MfG,

Francisco
 
G

Gast

Den Code würde ich jetzt gerne sehen. Ich sitze nämlich an genau dem Problem.

mfg
 

Neue Beiträge