Sono riuscito a risolvere, utilizzando blueCove. Ora riesco ad utilizzare le librerie per il bluetooth. Ho trovato un esempio di codice che dovrebbe permettermi di trovare i dispositivi bluetooth presenti nelle vicinanze, il codice si compila corretamente e nei commenti viene detto che alcuni metodi vengono richiamati automaticamente, solo che non riesco a rilevare nessun dispositivo. Magari è necessario aggiungere alcuni comandi per richiamare i metodi in questione. Qualcuno può aiutarmi?
codice:
import java.io.*;
import java.util.*;
import javax.bluetooth.*;
public class DiscoveryListenerImpl implements DiscoveryListener
{
private Hashtable<String, RemoteDevice> devices;
public DiscoveryListenerImpl()
{
this.devices = new Hashtable<String, RemoteDevice>();
}
/* Metodo definito dall'interfaccia DiscoveryListener */
public void startInquiry()
{
try
{
// Accesso al LocalDevice per iniziare la scansione dei dispositivi
LocalDevice localDevice = LocalDevice.getLocalDevice();
DiscoveryAgent discoveryAgent = localDevice.getDiscoveryAgent();
// Inizio della scansione dei dispositivi. La libreria avvia un nuovo Thread
// per lo svolgimento di questa operazione
//discoveryAgent.startInquiry(DiscoveryAgent.LIAC, this);
}
catch (Exception e)
{
e.printStackTrace();
}
}
/* Metodo definito dall'interfaccia DiscoveryListener:
* viene invocato automaticamente ogni volta che viene trovato un nuovo dispositivo
* */
public void deviceDiscovered(javax.bluetooth.RemoteDevice remoteDevice,javax.bluetooth.DeviceClass deviceClass)
{
// Mettiamo il dispositivo trovato in una Hashtable
devices.put(remoteDevice.getBluetoothAddress(), remoteDevice);
}
/* Metodo definito dall'interfaccia DiscoveryListener:
* viene invocato automaticamente quando termina l'operazione di discovery */
public void inquiryCompleted(int param)
{
if (param == DiscoveryListener.INQUIRY_COMPLETED|| param == DiscoveryListener.INQUIRY_TERMINATED)
{
// Se l'operazione di discovery termina correttamente, stampiamo a video i
// dispositivi trovati e memorizzati nell'Hashtable
Enumeration<RemoteDevice> enumeration = devices.elements();
while(enumeration.hasMoreElements())
{
RemoteDevice device = enumeration.nextElement();
try
{
System.out.println("Device [" + device.getBluetoothAddress()+ ", " + device.getFriendlyName(true) + "]");
}
catch (IOException e)
{
System.err.println("Impossibile recuperare il nome del dispositivo: "+ device.getBluetoothAddress());
}
}
}
else
{
System.out.println("Nessun dispositivo trovato.");
}
}
public void serviceSearchCompleted(int arg0, int arg1) {}
public void servicesDiscovered(int arg0, ServiceRecord[] arg1) {}
}