# RFCOMM über serielle Schnittstelle RS 232 MIDLET



## bitfix (12. Jul 2007)

Hi Leute,

ich bin momentan ziemlich ralos, bitte um eure Hilfe!!!

Folgendes Projekt:

ich möchte per Handy Daten mit einem Gerät über eine serielle Schnittstelle RS232 austauschen, die Datenmengen sind relativ gering und nicht zeitkritisch ! Ich habe mir einen  Adapter Blutooth RS232 besorgt.

Flogende funktionen soll das Midlet auf dem Handy haben:

1. Gerätesuche (funktioniert bereits, mein midlet findet auch den Adapter)

2. Dienstsuche ( funktioniert nicht)

3. Verbindung mit dem Adapter herstellen

4. Daten austauschen

Mein Quellcode:


hat jemand source-Code für die Schritte 2 - 4 ???

Das ganze könnte man mit einem Hyperterminal testen, wenn der Adapter direkt am PC angeschlossen wird.

vielen Dank für eure Bemühungen

gruß Bitfix 
Mein Quellcode:

/*
 * HelloMidlet.java
 *
 * Created on 29. November 2006, 21:09
 */

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



```
public class HelloMidlet extends MIDlet implements CommandListener, DiscoveryListener, Runnable
{
 
	private List MainMenu;
        private List ServiceList;
	//remote device found;
        
	private RemoteDevice btDev = null;
	private boolean DeviceSearchRunning = false;
 
 
	private RemoteDevice[] FoundDevices = new RemoteDevice[20];
	private int FoundDevicesNum = 0;
	private DiscoveryAgent agent = LocalDevice.getLocalDevice().getDiscoveryAgent();
 
	public HelloMidlet() throws IOException
	{
		MainMenu = new List("Bluetooth-Test", Choice.IMPLICIT);
		MainMenu.append("Server", null);
		MainMenu.append("Client", null);
		MainMenu.append("Exit", null);
		MainMenu.addCommand(new Command("Exit", Command.EXIT, 1));
		MainMenu.setSelectCommand(new Command("OK", Command.OK, 0));
		MainMenu.setCommandListener(this);
	}
 
	private void BluetoothDeviceSearch() throws IOException
	{
		//Anzeige mit Bluetooth symbol erstellen
		Form Devices = new Form("Device Search");
         	Devices.addCommand(new Command("zurück", Command.BACK, 0));
		Devices.setCommandListener(this);
		Display.getDisplay(this).setCurrent(Devices);
 
		/***Eigene Bluetooth-Gerät sichtbar machen***/
		// retrieve the local Bluetooth device object
		 LocalDevice local = LocalDevice.getLocalDevice();
		// retrieve the Bluetooth address of the local device
		// String address = local.getBluetoothAddress();
		// retrieve the name of the local Bluetooth device
                
		 // local String name = local.getFriendlyName();
                 
                 System.out.println("-->btdevicesearch");
 
		Devices.append("textausgabe");
 
		/***Bluetooth-Gerätesuche starten***/
 
		Devices.append("\nStarting BT Gerätesuche\n");
 
		try { Thread.sleep(500); }
		catch (InterruptedException ex) { ex.printStackTrace(); }
 
		btDev = null;
 
		DeviceSearchRunning = true;
 
		FoundDevicesNum = 0;
           
		agent.startInquiry(DiscoveryAgent.GIAC, this);
		Devices.append("\nSearching...\n");
	}
       
 
	private void BluetoothServiceSearch() throws BluetoothStateException
	{
   
DiscoveryAgent agent = LocalDevice.getLocalDevice().getDiscoveryAgent();
((List)Display.getDisplay(this).getCurrent()).append("Searching Services...", null);
//UUID uuids[] ={ new UUID(0x1101) };
//agent.searchServices(null, uuids, btDev, this);

((List)Display.getDisplay(this).getCurrent()).append("Searching Services...new", null);
UUID[] searchList = new UUID[ 1 ] ;
searchList [ 0 ] = new UUID( "42249B70A08911DAA7460800200C9A66 " ,false ) ;

     agent.searchServices( null , searchList ,  btDev,this ) ;[code]
```


----------



## jamesmasters1985 (30. Okt 2007)

Wenns noch interessiert hardcodiere die Adresse dann sparst du dir Geräte und Dienstsuche.


----------

