Bluetooth a j2me

0

Witam jestem początkującą programistką. Do nauki j2me zakupiłam książkę w której jest opisane jak stworzyć połączenie między bluetooth'em a komórką. I tu jest problem. Wywala mi jeden błąd i nie wiem dlaczego, gdyż niby wszystko jest ok...
oto kod:

package bluetooth;
import javax.bluetooth.*;
import javax.microedition.io.*;
import java.io.*;
import java.util.Vector;
public class KlientBT implements Runnable, DiscoveryListener
{
public KlientBT(BluetoothMIDlet m)
{
	this.m = m;
	urzadzenia = new Vector();
	idki = new UUID[2];
	idki[0] = new UUID(0x1101);
	idki[1] = UUID_SERWERA;
	atrybuty = new int[1];
	atrybuty[0] = ATRYBUT_WERSJI;
	Thread w = new Thread(this);
	w.start();
}
public synchronized void run()
{
try
{
		urzadzenie = LocalDevice.getLocalDevice();
		wyszukiwarka = urzadzenie.getDiscoveryAgent();
		wyszukiwarka.startInquiry(DiscoveryAgent.GIAC,this);
		wait();
		this.szukajUslugi();
		wait();
		m.aktywujPolecenia();
		wait();
		while (true)
		{
			String wartosc = this.wyslij();
			m.pokaz(wartosc);
			wait();
		}
	}
	catch (Exception e)
	{
		e.printStackTrace();
		m.notifyDestroyed();
	}
}
public void deviceDiscovered(RemoteDevice urzadzenie, DeviceClass  rodzaj)
{
	if (urzadzenia.indexOf(urzadzenie)==-1)
		urzadzenia.addElement(urzadzenie);
}
public void inquiryCompleted(int rodzaj)
{
	if(rodzaj == DiscoveryListener.INQUIRY_COMPLETED)
	{
		synchronized(this)
		{
			notify();
		}
	}else
		m.notifyDestroyed();
}
public void sevicesDiscovered(int idTransakcji, ServiceRecord[] uslugi)
{
	if (usluga == null)
	{
		for (int i=0; i<uslugi.length;i++)
		{
			DataElement de = uslugi[i].getAttributeValue(ATRYBUT_WERSJI);
			long parametr = de.getLong();
			if(parametr==1)
			{
				znalezionoUsluge = true;
				usluga = uslugi[i];
				break;
			}
		}
	}
}
public void serviceSearchCompleted(int idTransakcji, int kod)
{
	if(znalezionoUsluge && !zakonczono)
	{
		zakonczono = true;
		synchronized(this)
		{
			notify();
		}
	}
}
public void szukajUslugi() throws Exception
{
	for (int i=0; i<urzadzenia.size();i++)
	{
		RemoteDevice urzadzenie = (RemoteDevice)urzadzenia.elementAt(i);
		wyszukiwarka.searchServices(atrybuty,idki,urzadzenie,this);
	}
}
public synchronized void wyslij(String tekst)
{
	this.tekst = tekst;
	notify();
}
private String wyslij()
{
	try
	{
		String url = usluga.getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT,false);
		StreamConnection pol = (StreamConnection)Connector.open(url);
		byte dlugosc = (byte)tekst.length();
		OutputStream wyj = pol.openOutputStream();
		InputStream wej = pol.openInputStream();
		wyj.write(dlugosc);
		wyj.write(tekst.getBytes("ISO-8859-1"));
		wyj.flush();
		wyj.close();
		int licznik = 0;
		byte[] bufor = new byte[dlugosc];
		while (licznik<dlugosc)
		{
			int liczba = wej.read(bufor,licznik,dlugosc-licznik);
			licznik+=liczba;
		}
		wej.close();
		return new String(bufor,"ISO-8859-1");
	}
	catch (Exception e)
	{
		e.printStackTrace();
	}
	return "";
}
private BluetoothMIDlet m;
private LocalDevice urzadzenie;
private DiscoveryAgent wyszukiwarka;
private Vector urzadzenia;
private ServiceRecord usluga=null;
private UUID[] idki;
private int[]atrybuty;
private String tekst="";
private boolean znalezionoUsluge = false;
private boolean zakonczono = false;
private static final int ATRYBUT_WERSJI = 0x3232;
private static final UUID UUID_SERWERA = 
	new UUID("ABCDEF12345678998877665544332211",false);
}

w public class jest błędem KlientBT. a error jest taki :"The type KlientBT must implement the inherited abstract method DiscoveryListener, servicesDiscovered(int ServiceRecord[]) --- > i o co chodzi?

Proszę o szybką pomoc gdyż to jest projekt który muszę do jutra oddać...

0

Musisz zaimplementować metodę

public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
}

w klasie KlientBT.

0

Tam masz literówke sevices zamiast services

0

zrobiłam tak jak napisałeś i lipa: "Create process failed" i nie da się uruchomić a w kodzie nie ma już błędów:/

i tak btw. jak zrobić, by przez komórkę (dokładniej bluetooth) wysyłać info do jakiegoś urządzenia by się np. włączyło lub wyłączyło ?

0

Witam Aga ten przykład jest mi znany dobrzez chyba "Kiciora" prawda jest tam wiele błędów i możesz spokojnie o tym zapomnieć radzę poszuakć czegoś na necie jest tego dużo ale licz się z tym że specyfikacja BT swoją drogą a producenci telefonow swoją drogą (mala przenaszalnośc kodu pomiędzy terminalami). jeśli będziesz miala jeszcze jakieś problemy pisz podeślę ci proste przykladziki w stylu sterujemy powerpointem z komorki

1 użytkowników online, w tym zalogowanych: 0, gości: 1