Bluetooth em aplicações java Desktop

6 respostas Resolvido
programaçãojava
D

Estou tentado fazer uma conexão de uma aplicação java Desktop, para um celular. Estou usando a biblioteca Bluecove, porém sem sucesso ao tentar detectar os dispositivos moveis através do aplicação. É realmente possível fazer esse tipo de comunicação? Vi também que é possivel fazer isso usando a implementação JRS-82, andei dando uma pesquisada de como implementar e também não achei muita coisa a respeito. Alguém poderia me ajudar ou me dar um norte?

6 Respostas

S

Sim é possível.
Eu fiz no meu TCC em 2016.
Na época a última versão do Bluecove era de 2008, ou seja, bastante defasada.

Não sei se vale a pena você tentar implementar a especificação do JSR-82, pois você vai precisar implementar muita coisa com JNI ou JNA.

J
D

Senhores segui o exemplo conforme o video:

import java.io.IOException;

import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.LocalDevice;
import javax.bluetooth.RemoteDevice;


public class Main {

	public static void main(String[] args) throws IOException {

		LocalDevice localDevice = LocalDevice.getLocalDevice();
		
		RemoteDevice[] remoteDevice = localDevice.getDiscoveryAgent().retrieveDevices(DiscoveryAgent.PREKNOWN);
				
		for(RemoteDevice rm : remoteDevice) {
			System.out.print("Devices: " + rm.getFriendlyName(false));
		}
		
	}

}

Porém o erro que eu recebo é:

BlueCove version 2.1.1-SNAPSHOT on winsock
Exception in thread "main" java.lang.NullPointerException
	at br.com.bluecove.example.ui.Main.main(Main.java:19)
BlueCove stack shutdown completed

Debugando na parte de getDisvcoveryAgent ele retorna null

D

Bem legal, estou usando o Bluecove também, porém estou tendo um erro ao buscar por devices, reclama de NullPointerException

BlueCove version 2.1.1-SNAPSHOT on winsock
Exception in thread "main" java.lang.NullPointerException
	at br.com.bluecove.example.ui.Main.main(Main.java:19)
BlueCove stack shutdown completed

Meu código:

import java.io.IOException;

import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.LocalDevice;
import javax.bluetooth.RemoteDevice;


public class Main {

	public static void main(String[] args) throws IOException {

		LocalDevice localDevice = LocalDevice.getLocalDevice();
		
		RemoteDevice[] remoteDevice = localDevice.getDiscoveryAgent().retrieveDevices(DiscoveryAgent.PREKNOWN);
				
		for(RemoteDevice rm : remoteDevice) {
			System.out.print("Devices: " + rm.getFriendlyName(false));
		}
		
	}

}
S
Solucao aceita

O DiscoveryAgent.PREKNOWN só vai trazer os dispositivos que já foram pareados anteriormente.

D

Opa, era isso mesmo estava procurando dispositivos que já tinham sido pareados, troquei para NOT_DISCOVERABLE e funcionou perfeitamente. Vlw você me ajuda bastante.

Criado 12 de março de 2020
Ultima resposta 13 de mar. de 2020
Respostas 6
Participantes 3