JABWT (JSR-82) Teil 3: RFCOMM Beispiel

Das nachfolgende Codebeispiel zeigt sehr vereinfacht einen Zugriff auf einen GPS Empfänger.

Zunächst wird über die Connector Klasse ein StreamConnection Objekt geholt, mit Hilfe dessen ein InputStream geöffnet wird. Über diesen Stream schickt der GPS Empfänger laufend NMEA-Messages, die die aktuelle Position angeben. Unser Beispielcode interpretiert die ersten ankommenden 256 Bytes als String. Das ist ausreichend um mindestens 1 NMEA-Message komplett zu empfangen. Anschliessend wird die Verbindung im finally Block geschlossen.

  1. import java.io.IOException;
  2. import java.io.InputStream;
  3. import javax.microedition.io.Connector;
  4. import javax.microedition.io.StreamConnection;
  5.  
  6. StreamConnection conn   = null;
  7. InputStream is          = null;
  8. String message          = null;
  9. try {
  10.         conn = (StreamConnection) Connector.open (“btspp://008049323FAE:1”,
  11.                                                   Connector.READ);
  12.         is = conn.openInputStream();
  13.         byte buffer[] = new byte[256];
  14.         is.read(buffer);
  15.         message = new String(buffer);
  16.  
  17. } catch (IOException io) {
  18.         // handle exception
  19. } finally {
  20.         if (conn != null) {
  21.                 try {
  22.                         conn.close();
  23.                 } catch (IOException ignored) {}
  24.         }
  25.  
  26.         if (is != null) {
  27.                 try {
  28.                         is.close();
  29.                 } catch (IOException ignored) {}
  30.         }
  31. }

Dieser Code ist natürlich in dieser einfachen Form noch nicht “produktionstauglich”. Z.B. würde man den Bluetooth Zugriff in einem separaten Thread oder besser in einem TimerTask auslagern. Zudem ist im Beispiel die Bluetoothadresse noch hartcodiert. Wie man die Adresse zur Laufzeit findet, seht ihr im nächsten Teil

;)

Comments are closed.