Bluetooth em aplicações java Desktop

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?

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.

1 curtida

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

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));
		}
		
	}

}

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

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

1 curtida