ajuda com conexao bluetooth

23/09/2010

0

ola pessoal estou com um pouco de problema para fazer a conexao bluetooth usando blucove e  um cliente j2me fiz a seguinte classe     package Core; import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.util.Vector;
import javax.bluetooth.*;
import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.List; /**
 *
 * @author Hudson
 */
public class mega extends List implements CommandListener,Runnable
{
    private final Command cmd_search;
    private final Command cmd_select;
    private final Command cmd_exit;     public static Vector dispositivos = new Vector();
    public static Vector classesDispositivos = new Vector();
    public static Vector servicos = new Vector();
    public static int dispositivoSelecionado = -1;
    public UUID[] servicoUUIDs = null;
    public int deviceReturnCode;
    public int serviceReturnCode;
    public LocalDevice dispositivo;
    private DiscoveryAgent agenteDescoberta;
    public UUID uuid = new UUID("102030405060708090A1B1C1D1E1F111", false);     public mega()
    {
        super("Bt",List.IMPLICIT);
        cmd_search = new Command("Procurar",Command.SCREEN, 0);
        this.addCommand(cmd_search);         cmd_select= new Command("Selecionar",Command.SCREEN, 1);
        this.addCommand(cmd_select);         cmd_exit = new Command("Voltar",Command.BACK, 1);
        this.addCommand(cmd_exit);
        this.setCommandListener(this);
    }
    public void iniciaInquiry(UUID servicoUUIDs [] )
    {
        try
        {
            this.servicoUUIDs = servicoUUIDs;
            dispositivos.removeAllElements();
            classesDispositivos.removeAllElements();
            dispositivo = LocalDevice.getLocalDevice();
            dispositivo.setDiscoverable(DiscoveryAgent.GIAC);
            agenteDescoberta = dispositivo.getDiscoveryAgent();
            boolean resultado = agenteDescoberta.startInquiry(DiscoveryAgent.GIAC, new BluetoothListener());
            this.deleteAll();
            this.append("[Aguarde...]",null);         }
        catch ( BluetoothStateException e )
        {
            e.printStackTrace();
        }
    }
    public void commandAction(Command c, Displayable d)
    {
         if(c == cmd_exit)
        {
            new Run().destroyApp(true);
        }
        else if(c == cmd_search)
        {
           iniciaInquiry(new UUID[]);
        }
        else if(c == cmd_select)
        {
            run();
        }
    }
    public void executa()
    {
        dispositivoSelecionado = this.getSelectedIndex();
        RemoteDevice dispositivoRemoto = (RemoteDevice) dispositivos.elementAt( dispositivoSelecionado );
        servicos.removeAllElements();         try
        {
            agenteDescoberta.searchServices(null,
                    servicoUUIDs,
                    dispositivoRemoto,
                    new BluetoothListener() );         }
        catch (BluetoothStateException ex)
        {
            ex.printStackTrace();
        }
    }
    public void mostraDispositivos()
    {
        super.deleteAll();
        if (dispositivos.size() > 0)
        {
            for (int i = 0; i < dispositivos.size(); i++) {
                try {
                    RemoteDevice dispositivoRemoto = (RemoteDevice) dispositivos.elementAt(i);
                    String name = dispositivoRemoto.getFriendlyName(false);
                    append(name, null);                 }
                catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        }
        else
        {
            limpaTudo();
            append("[Não Encontrado]", null);
        }
    }
    public void limpaTudo()
    {
        this.deleteAll();
    }
    public void inseriTexto(String s)
    {
        this.append(s, null);
    }
    public void envia_mensagem(ServiceRecord r, String msg, String addr)
    { //        escreveSaida( "--------------------------------------------------------------------------------------");
//        escreveSaida( "Enviando Mensagem para Servidor");
        // Obt�m a URL para o servi�o serial do Servidor
        String url  = r.getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false );
//        escreveSaida("URL do Servidor:"+url);
        try
        {
            StreamConnection con = (StreamConnection) Connector.open( url );
//            escreveSaida("-> Conectado ao Servidor ");
//            escreveSaida("-> Enviando  '"+msg+"'");
//            escreveSaida("-> Enviando  '"+addr+"'");             DataOutputStream saida = con.openDataOutputStream();
            saida.writeUTF( msg );
            saida.writeUTF( addr );
            saida.flush();
//            escreveSaida("Finalizou Envio Dados SYN OK");             Thread.sleep(1000);             saida.close();
            DataInputStream in = con.openDataInputStream();
            String s = in.readUTF();
            String s1 = in.readUTF();
//            escreveSaida("Retorno Servidor -> '"+s+"'");
//            escreveSaida("Retorno Servidor -> '"+s1+"'");
//
//            escreveSaida("Finalizou Recebimento Dados ACK OK");
            con.close();
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
    public ServiceRecord getPrimeiroServicoDescoberto()
    {
        if ( servicos.size() > 0 )
            return (ServiceRecord) servicos.elementAt(0);
        else
            return null;
    }
    public void run()
    {
         envia_mensagem(getPrimeiroServicoDescoberto(), "teste", dispositivo.getBluetoothAddress().toString() );
    }
    class BluetoothListener implements DiscoveryListener
    {
        public void deviceDiscovered(RemoteDevice dispositivoRemoto,
                DeviceClass classeDispositivo) {
            dispositivos.addElement( dispositivoRemoto );
            classesDispositivos.addElement( classeDispositivo );
        }
        public void inquiryCompleted(int complete) {             deviceReturnCode = complete;             if ( dispositivos.size() == 0 )
            {
                 limpaTudo();
                 inseriTexto("[Não foi possível encontrar dispositivos]");
            }
            else
            {
                mostraDispositivos();
            }
        }
        public void servicesDiscovered(int transId, ServiceRecord[] records)
        {
            for ( int i=0; i< records.length;  i ++ ) {
                ServiceRecord record = records[i];
                servicos.addElement( record );
            }
        }
        public void serviceSearchCompleted(int transId, int complete)
        {
            serviceReturnCode = complete;
        }
    }
}
 nao conecta nen por rai alguem pode me ajudar?
Hudson Schumaker

Hudson Schumaker

Responder

Posts

27/09/2010

Dyego Carmo

Qual eh o erro completo ?

Responder

27/09/2010

Hudson Schumaker

nao da erro mas tb nao conecta.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar