El conector Bluetooth de Android se bloquea
Estoy teniendo un problema donde cuando llamo sock.connect () sólo cuelga indefinidamente. No hay excepción ni tiempo de espera.
try { Method m = dev.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); sock = (BluetoothSocket) m.invoke(dev, 1); sock.connect(); Thread.sleep(100); in = sock.getInputStream(); out = sock.getOutputStream(); } catch(ConnectTimeoutException ex) { return false; } catch(IOException ex) { return false; } catch(Exception ex) { return false; }
La razón es que otra aplicación está utilizando el dispositivo bluetooth ya. Estoy tratando de hacer que mi conexión no y por lo menos lanzar una excepción o algo que me haga saber que el dispositivo ya está en uso por otra aplicación.
- Conector de Bluetooth
- Comunicación Bluetooth basada en RFCOMM entre dos dispositivos Android
- Cómo evitar la conexión Bluetooth RFCOMM de morir inmediatamente después de .connect ()?
- Conexión Bluetooth RFCOMM / SDP a un adaptador RS232 en android
- Bluetooth Android RFCOMM / SPP sugerencias de manejo de errores
¿Alguna otra sugerencia para abordar esto?
Gracias.
- Error de transmisión de datos mediante SPP sobre Bluetooth en Android
- Android Bluetooth: El software causó la interrupción de conexión IOException?
- Android Bluetooth Serial / RFCOMM / SPP, ¿Cómo cambiar el BAUD RATE?
- IOS a Android Bluetooth RFCOMM
- La conexión Bluetooth RFCOMM no se pudo establecer consecutivamente en Android 4.2
- ¿Cuándo android muestra un diálogo de emparejamiento al usar zócalos inseguros del bluetooth de RFCOMM?
- ¿Podría crear más de un canal RFCOMM por hora?
- Android Bluetooth Serial RFCOMM velocidad baja en baudios / transmisión lenta
¿Por qué llamas a Thread.Sleep? BluetoothSocket.connect es una llamada de bloqueo. Esto significa que no se llamará Thread.Sleep hasta que connect devuelve una conexión satisfactoria o lanza una excepción.
¿Estás llamando a esto en una actividad? Como esto colgará su actividad. Usted debe tener 3 hilos para manejar bluetooth, un hilo aceptar, conectar el hilo y un hilo conectado. Al igual que en el ejemplo de BluetoothChat aquí:
http://developer.android.com/resources/samples/BluetoothChat/index.html
- Android: Haciendo un HorizontalScrollView en Bucle de una Imagen Panorámica con Javascript
- Cálculo de área en Google Static Map API