我想根据他在BlueCove上的蓝牙地址找到一个特定的设备,但是我不知道该怎么做,我创建了这个设备但是无效
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
List<RemoteDevice> dispositivos = new ArrayList<RemoteDevice>();
final Object inquiryCompletedEvent = new Object();
LocalDevice ld = LocalDevice.getLocalDevice();
DiscoveryAgent da = ld.getDiscoveryAgent();
DiscoveryListener lstnr = new DiscoveryListener() {
/*
* Ejercicio2 clase utilizada para descubrir todos los dispositivos bluetooth(non-Javadoc)
* //visibles cercanos
*/
@Override
public void deviceDiscovered(RemoteDevice arg0, DeviceClass arg1) {
// TODO Auto-generated method stub
dispositivos.add(arg0);
//System.out.println("Dispositivo Bluetooth encontrado: "+arg0.getBluetoothAddress());
}
@Override
public void inquiryCompleted(int arg0) {
// TODO Auto-generated method stub
//System.out.println("La busqueda de dispositivos se ha realizado correctamente\n");
synchronized(inquiryCompletedEvent) {
try {
inquiryCompletedEvent.notifyAll();;
} catch ( Exception e ) {}
}
}
//Definir comportamiento a la hora de buscar un servicio en especifico
@Override
public void serviceSearchCompleted(int arg0, int arg1) {
}
@Override
public void servicesDiscovered(int arg0, ServiceRecord[] arg1) {
}
};
System.out.println("Ejemplo para probar la búsqueda de un dispositivo en concreto:\n");
//Busco todos los dispositivos disponibles y guardo en una lista
da.startInquiry(DiscoveryAgent.GIAC,lstnr);
synchronized(inquiryCompletedEvent) {
try {
inquiryCompletedEvent.wait();
} catch ( Exception e ) {}
}
//Recorro esa lista y comparo atendiendo a si lo introducido era un string o la direccion bluetooth
System.out.println("Como desea buscar la informacion, por direccion bluetooth introduzca 1, por friendly name 0:");
Scanner sc = new Scanner(System.in);
Scanner sc1 = new Scanner(System.in);
int eleccion = 0;
do {
eleccion = sc1.nextInt();
}while(eleccion!= 0 && eleccion != 1);
if(eleccion == 1) {
//Lo introducido es la direccion bluetooth
System.out.println("Introduzca la dirección bluetooth:");
String entrada = sc.nextLine();
boolean prosigue = true;
int i=0;
boolean detectado = false;
while(i<dispositivos.size() && prosigue == true) {
if(dispositivos.get(i).getBluetoothAddress().equals(entrada)) {
System.out.println("El dispositivo seleccionado por dirección bluetooth se encuentra disponible actualmente");
prosigue = false;
detectado = true;
}
i++;
}
if(detectado==false) {
System.out.println("El dispositivo seleccionado por dirección bluetooth no se encuentra disponible actualmente");
}
}else {
//Lo introducido es el friendly name
System.out.println("Introduzca el friendly name:");
String entrada = sc.nextLine();
boolean prosigue = true;
int i=0;
boolean detectado = false;
while(i<dispositivos.size() && prosigue == true) {
if(dispositivos.get(i).getFriendlyName(false).equals(entrada)) {
System.out.println("El dispositivo seleccionado por friendly name se encuentra disponible actualmente");
prosigue = false;
detectado = true;
}
i++;
}
if(detectado==false) {
System.out.println("El dispositivo seleccionado por friendly name no se encuentra disponible actualmente");
}
}
sc.close();
sc1.close();
}