Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problemas de código para encontrar módulos bluetooth con java

Buenas noches.
He estado tratando de realizar un programa que me identifique los módulos bluetooth que se encuentre cerca, la idea es solo identificarlos, luego hacer el envío de mensajes.
Baje el bluecove.jar y el bluecove-2.1.1-SNAPSHOT.jar, utilice el primero, agregando al proyecto y me salieron los siguientes errores

Native Library intelbth_x64 not available
Native Library bluecove_x64 not available

Luego quité bluecove.jar y coloque bluecove-2.1.1-SNAPSHOT.jar, ya que leyendo encontré que este funcionaba para x64. Pero el pequeño problema de tener los siguientes errores, no entendí por qué, si yo agregué la librería al proyecto tal cual como lo hice con bluecove.jar.

Native Library intelbth_x64 not available
Native Library bluecove_x64 not available
javax.bluetooth.BluetoothStateException: BlueCove libraries not available at com.intel.bluetooth.BlueCoveImpl.createDetectorOnWindows(BlueCoveImpl.java:896)
at com.intel.bluetooth.BlueCoveImpl.detectStack(BlueCoveImpl.java:439)
at com.intel.bluetooth.BlueCoveImpl.access$500(BlueCoveImpl.java:65)
at com.intel.bluetooth.BlueCoveImpl$1.run(BlueCoveImpl.java:1020)
at java.security.AccessController.doPrivileged(Native Method)
at com.intel.bluetooth.BlueCoveImpl.detectStackPrivileged(BlueCoveImpl.java:1018)
at com.intel.bluetooth.BlueCoveImpl.getBluetoothStack(BlueCoveImpl.java:1011)
at javax.bluetooth.LocalDevice.getLocalDeviceInstance(LocalDevice.java:75)
at javax.bluetooth.LocalDevice.getLocalDevice(LocalDevice.java:95)
at ManejoBluetooth.main(ManejoBluetooth.java:37)


Código que utilicé lo encontré en:
http://www.aviyehuda.com/blog/2010/01/13/weekend-project-bluetooth-multisender/.

import java.util.ArrayList;
import javax.bluetooth.DataElement;
import javax.bluetooth.DeviceClass;
import javax.bluetooth.DiscoveryAgent;
import javax.bluetooth.DiscoveryListener;
import javax.bluetooth.LocalDevice;
import javax.bluetooth.RemoteDevice;
import javax.bluetooth.ServiceRecord;
import javax.bluetooth.UUID;
import javax.microedition.io.Connector;


//import bt.BTListener.MyDeviceListenerFilter;

public class ManejoBluetooth implements DiscoveryListener{

private static Object lock=new Object();
public ArrayList<RemoteDevice> devices;

public ManejoBluetooth() {
devices = new ArrayList<RemoteDevice>();
}

public static void main(String[] args) {

ManejoBluetooth listener = new ManejoBluetooth();

try{
LocalDevice localDevice = LocalDevice.getLocalDevice();
DiscoveryAgent agent = localDevice.getDiscoveryAgent();
agent.startInquiry(DiscoveryAgent.GIAC, listener);

try {
synchronized(lock){
lock.wait();
}
}
catch (InterruptedException e) {
e.printStackTrace();
return;
}


System.out.println("Device Inquiry Completed. ");


UUID[] uuidSet = new UUID[1];
uuidSet[0]=new UUID(0x1105); //OBEX Object Push service

int[] attrIDs = new int[] {
0x0100 // Service name
};

for (RemoteDevice device : listener.devices) {
agent.searchServices(
attrIDs,uuidSet,device,listener);


try {
synchronized(lock){
lock.wait();
}
}
catch (InterruptedException e) {
e.printStackTrace();
return;
}


System.out.println("Service search finished.");
}

} catch (Exception e) {
e.printStackTrace();
}
}

public void deviceDiscovered(RemoteDevice btDevice, DeviceClass arg1) {
String name;
try {
name = btDevice.getFriendlyName(false);
} catch (Exception e) {
name = btDevice.getBluetoothAddress();
}

devices.add(btDevice);
System.out.println("device found: " + name);

}

public void inquiryCompleted(int arg0) {
synchronized(lock){
lock.notify();
}
}

public void serviceSearchCompleted(int arg0, int arg1) {
}

public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
}
}

Muchas gracias si me pueden ayudar, llevo resto buscando una solución y e utilizado todas las librerías bluecove que estén para x64 pero siempre me salen los mismo errores.

abril 29, 2014 | Unregistered CommenterAndrés Parra

Que SO utilizas?


Un saludo

abril 29, 2014 | Unregistered CommenterUnoPorAhi

Buenas Tardes.
El sistema operativo que tengo es Windows 7 Professional

abril 30, 2014 | Unregistered CommenterAndrés Parra

Ya, Professional, pero... 32 bits o 64 bits?

De donde te has bajado el snapshot? De aqui? http://snapshot.bluecove.org/distribution/download/2.1.1-SNAPSHOT/
Que build del snapshot?

Que version de JDK tienes instalada, 32 o 64 bits?


Un saludo

abril 30, 2014 | Unregistered CommenterUnoPorAhi

Nunca se insistirá lo suficiente en que para obtener buenas respuestas, es imprescindible hacer buenas preguntas, lo que incluye el proporcionar información lo más completa posible.

C:\Users\Carlos>java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

C:\Users\Carlos>systeminfo
Nombre del sistema operativo: Microsoft Windows 8.1 Pro
Versión del sistema operativo: 6.3.9600 N/D Compilación 9600
Fabricante del sistema operativo: Microsoft Corporation
Configuración del sistema operativo: Estación de trabajo independiente
Tipo de compilación del sistema operativo: Multiprocessor Free
Tipo de sistema: x64-based PC

abril 30, 2014 | Registered Commenterchoces

Buenos Tardes.

La información del Windows que tengo es el siguiente:

- OS Name Microsoft Windows 7 Professional
- Service Pack 1
- System Type x64-based PC
- Processor Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz, 2133 Mhz, 2 Core(s), 4 Logical Processor(s)
- Windows Directory C:\Windows
- System Directory C:\Windows\system32


Los Snapnots los he bajado de la página que colocó en el post y de otra como:

- http://snapshot.bluecove.org/distribution/download/2.1.1-SNAPSHOT/2.1.1-SNAPSHOT.62/


También he bajado los bluecode.jar de la siguiente página:

- http://www.java2s.com/Code/Jar/b/Downloadbluecove211jar.htm


El JDK que instalé es jdk1.6.0_20 para x64, ya que mi sistema operativo es de x64 y tengo el eclipse Kepler.

Muchas gracias por la colaboración y también por mostrarme como se debe hacer una buena pregunta.

mayo 2, 2014 | Unregistered CommenterAndrés Parra

Genial,

Por lo que he visto en windows 7 64 se produce habitualmente este problema. No puedo reproducirlo, ya que no uso windows, pero me da la sensación de que tu problema está relacionado con JDK que utilizas.
Aunque tengas un SO de 64 bit, el software de 32 bits funciona perfectamente en él (y de hecho seguro que la mayoría del software que tienes instalado es de ese tipo).
Yo probaría primero a instalar la última versión del jdk Java en 64 bits. Si no se arregla el problema, estoy casi seguro que si instalas el jdk de 32 bits (x86) te va a funcionar sin ningún problema.

http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=otnjp

Otra opción sería que busques en tu equipo los ficheros intelbth.dll y bluecove.dll y los dupliques y renombres a intelbth_x64.dll y bluecove_x64.dll. Si hay suertecilla, puede funcionar.


Un saludo

mayo 2, 2014 | Unregistered CommenterUnoPorAhi