Boa tarde pessoal
Estou escrevendo um programa J2ME que inicialmente irá localizar todos os dispositivos com bluetooth habilitados perto do celular que rodará esta aplicação.
Só que o resultado está muito inconstante: algumas vezes, ele encontra o meu pc com interface bluetooth, outras vezes um outro celular que está aqui comigo para testes.
Já fiz uns testes e o que está acontecendo é que o programa está fazendo a busca (agent.startInquiry(DiscoveryAgent.GIAC, this), e depois que encontra 1 dispositivo, encerra a pesquisa. Tentei fazer uma pesquisa pela aplicação bluetooth nativa do celular, só para testar, e ele encontra o PC e o outro telefone.
Tentei o mesmo código usado em uma aplicação J2SE e ele encontra tudo. Só neste telefone motorola ele faz a busca e pára. No nokia, ele faz a busca e nunca encontra nada.
O que estou fazendo de errado?
o Código:
Declaração da classe
public class ClienteME2 extends MIDlet implements DiscoveryListener{
Método principal
LocalDevice localDevice = LocalDevice.getLocalDevice();
//SHOW ALL INFORMATIONS
localName = localDevice.getFriendlyName();
localAddress = localDevice.getBluetoothAddress();
DiscoveryAgent agent = localDevice.getDiscoveryAgent();
agent.startInquiry(DiscoveryAgent.GIAC, this);
synchronized (this)
{
try
{
wait();
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}//end of synchronized
public void deviceDiscovered(RemoteDevice btDevice, DeviceClass cod)
{
try
{
text += "\n" + btDevice.getFriendlyName(true);
i++; //Com 2 dispositivos com BT ativado, no motorola sempre retorna 1 e no Nokia, 0
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}//End of deviceDiscovered method
public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {}//End of servicesDiscovered method
public void serviceSearchCompleted(int transID, int respCode) {}//end of serviceSearchCompleted method
public void inquiryCompleted(int discType) {
synchronized (this)
{
notify();
}//end of synchronized (lock)
}//end of inquiryCompleted method