Boa tarde,
Estou com um problema para finalizar o bluecove. Ele só finaliza quando eu encerro toda a aplicação. (J2SE)
O que pretendo fazer é ativar o bluetooth ao abrir determinada janela e ao fechar essa janela desativar.
A comunicação funciona normal quando conecto com o android, o problema é que o blueclove não finaliza a conexão após o uso.
Ao fechar a janela, eu coloco a variável bluetooth como false;
Já tentei dar um close na StremConnection mas nao funciona.
Ao ativar o servidor a saída dele é:BlueCove version 2.1.0 on bluez
BlueCove stack shutdown completed
O que eu quero é dar esse shutdown durante a execução da aplicação.
Agradeço qualquer ajuda.
Segue o código da classe server:
class ServerBlueTooth implements Runnable {
/**
* Fluxo de Execução Principal
*
*
*/
String arrec;
public ServerBlueTooth(String arrec){
this.arrec = arrec;
}
@Override
public void run() {
// Identificador Único de Conexão
String uuid = "94fa7431-b6f5-11e1-afa6-0800200c9a66";
// Endereço para Conexão
String address = "btspp://localhost:" + uuid.replace("-", "");
try {
// Abertura de Conexão
StreamConnectionNotifier notifier =
(StreamConnectionNotifier) Connector.open(address);
// Fluxo de Conexão
StreamConnection stream = notifier.acceptAndOpen();
// Captura de Fluxos
InputStream input = stream.openInputStream();
OutputStream output = stream.openOutputStream();
// Laço de Repetição
int size; byte content[]; // Auxiliares de Leitura
String message = ""; // Mensagem Enviada pelo Cliente
while (blueTooth) {
// Tamanho dos Dados
size = input.read(); // Quantidade de Bytes
// Buffer de Leitura
if(size != -1){
content = new byte[size];
// Preenchimento dos Dados
input.read(content); // Entrada de Informação
// Transformação da Mensagem Enviada
message = new String(content); // Novo Elemento
// Exibição na Saída Padrão
System.out.println(message);
if(message.equals("arrec")){
output.write(arrec.length());
output.write(arrec.getBytes());
}
}
}
} catch (IOException e) {
// Erro Encontrado
e.printStackTrace();
}
}
}