Galera boa noite,
sou novo no GUJ…
Estou desenvolvendo uma aplicação para PC e Celular, onde o objetivo é transferir uma imagem do cel para o pc.
Estou tendo problema para conectar o pc ao celular…
Dando uma olhada no site descobri algumas coisas interesantes uma aplicação pronta para o servidor(pc) e para o cliente(celular).
O aplicativo do pc funciona blz, porém o do celular não realiza a conexão… estou com muitas duvidas se é por causa da url??? ou os passos da ativação que estou seguindo(primeiro roda o servidor, depois o cliente…)??? ou se esta faltando alguma coisa no codigo???
o codigo do servidor é esse:
[code]import java.io.IOException;
import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.LocalDevice;
import javax.bluetooth.ServiceRecord;
import javax.bluetooth.UUID;
import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnectionNotifier;
class Conteste {
private static StreamConnectionNotifier conexao;
private static StreamConnectionNotifier conexaoCliente;
public static void main(String[] args) throws IOException {
UUID identificadorUnico = new UUID(0x1101);
String endereco = "btspp://localhost:" + identificadorUnico.toString() +";name=sethbrabluetooth";
// Inicializa a Pilha de Protocolos Java Bluetooh
// e captura o objeto dispositivo local Bluetooth
LocalDevice dispositivo = LocalDevice.getLocalDevice();
// Cria um objeto para conexão do servidor, Create a server connection object, using a
// utilizando o Serial Port Profile, especificando a URL e o UUID e definindo
// o nome de serviço WebMobileRFCOMM
conexao = (StreamConnectionNotifier)Connector.open(endereco);
// Existem 2 formas de definir o tempo de descoberta de um dispositivo
// GIAC - General Inquiry Access Code - Significa que o dispositivo sempre ficará disponivel para descoberta
// LIAC - Limited Inquiry Access Code - Significa que o dispositivo ficará por um tempo disponivel para ser
// descoberto, após este tempo que é de aproximadamente 1 minutos ele se torna Indisponivel.
dispositivo.setDiscoverable(DiscoveryAgent.GIAC);
String enderecoMac = dispositivo.getBluetoothAddress();
String canal = dispositivo.getRecord(conexao).getConnectionURL(ServiceRecord.NOAUTHENTICATE_NOENCRYPT, false);
System.out.println("MAC: " + enderecoMac + " canal:" + canal);
while(true){
System.out.println("Aguardando Clientes:");
conexaoCliente = (StreamConnectionNotifier) conexao.acceptAndOpen();
System.out.println("Conectou");
}
}
}
[/code]
e esse é o do cliente:
[code]import java.io.IOException;
import javax.microedition.io.Connector;
import javax.microedition.io.StreamConnection;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class ClienteJ2Me extends MIDlet implements CommandListener {
private TextBox texto;
private Command sair;
private Display d;
public ClienteJ2Me() {
this.sair = new Command("Sair",Command.EXIT,0);
this.texto = new TextBox("","",40,TextField.ANY);
this.texto.setCommandListener(this);
this.texto.addCommand(this.sair);
this.d = Display.getDisplay(this);
}
protected void destroyApp(boolean arg0){
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
this.d.setCurrent(this.texto);
StreamConnection connection = null;
try {
connection = (StreamConnection)Connector.open("btspp://001F81000100:2",Connector.READ_WRITE,false);
System.out.println("Conectou");
connection.close();
} catch (IOException e) {
this.texto.setString("Erro ao tentar conectar : " + e.getMessage());
e.printStackTrace();
}
}
public void commandAction(Command arg0, Displayable arg1) {
if(arg0 == this.sair){
this.destroyApp(true);
this.notifyDestroyed();
}
}
}
[/code]
o celular que eu estou usando é um sony ericsson W302, sera que para essa plataforma o endereço do bluetooth ou a forma de conexão é diferente???
Se vc obsevarem no servidor tem um identificador unico UUID(0x1101);, já no celular o identificador é 001F81000100:2???pq???
Agradeço a ajuda.