Conectarse al conector Bluetooth de Android

Hola, estoy tratando de crear una aplicación para Android que se conectará a un dongle Blue SMiRF Bluetooth a la que quiero enviar datos. He leído sobre las páginas del revelador y he mirado los varios diversos ejemplos sin embargo estoy teniendo actualmente el apuro que crea una conexión al zócalo. La parte de Bluetooth del código es más o menos de un ejemplo que pude encontrar. Al intentar conectar con el dongle de Bluetooth la aplicación consigue una fuerza cerca porque hay un cierto error que no estoy manejando correctamente. Sin embargo, también he intentado utilizar la aplicación sólo para conectarse a otro PC y la conexión no se establece correctamente por alguna razón, aunque ya estoy emparejado con el dispositivo a través de la configuración de Bluetooth antes de ejecutar la aplicación. He publicado algunos de los códigos más importantes a continuación, donde creo que mi problema puede ser. Cualquier ayuda será muy apreciada, déjeme por favor saber si debo fijar cualquier código adicional.

protected void connect(BluetoothDevice device) { //BluetoothSocket socket = null; try { //Create a Socket connection: need the server's UUID number of registered socket = device.createRfcommSocketToServiceRecord(UUID.fromString("a60f35f0-b93a-11de-8a39-08002009c666")); socket.connect(); Log.d("EF-BTBee", ">>Client connectted"); InputStream inputStream = socket.getInputStream(); OutputStream outputStream = socket.getOutputStream(); outputStream.write(new byte[] { (byte) 0xa0, 0, 7, 16, 0, 4, 0 }); new Thread() { public void run() { while(true) { try { Log.d("EF-BTBee", ">>Send data thread!"); OutputStream outputStream = socket.getOutputStream(); outputStream.write(new byte[] { (byte) 0xa2, 0, 7, 16, 0, 4, 0 }); } catch (IOException e) { Log.e("EF-BTBee", "", e); } } }; }.start(); } catch (IOException e) { Log.e("EF-BTBee", "", e); } finally { if (socket != null) { try { Log.d("EF-BTBee", ">>Client Close"); socket.close(); finish(); return ; } catch (IOException e) { Log.e("EF-BTBee", "", e); } } } }` 

También he intentado usar

 Method m = device.getClass().getMethod("createRfcommSocket", new Class[] {int.class}); socket = (BluetoothSocket) m.invoke(device, 1); 

En lugar de sólo el "socket =" línea de arriba y todavía no tuvo éxito.

Si el dispositivo ya está emparejado, entonces puede utilizar

 if(device.getBondState()==device.BOND_BONDED){ Log.d(TAG,device.getName()); //BluetoothSocket mSocket=null; try { mSocket = device.createInsecureRfcommSocketToServiceRecord(MY_UUID); } catch (IOException e1) { // TODO Auto-generated catch block Log.d(TAG,"socket not created"); e1.printStackTrace(); } try{ mSocket.connect(); } catch(IOException e){ try { mSocket.close(); Log.d(TAG,"Cannot connect"); } catch (IOException e1) { Log.d(TAG,"Socket not closed"); e1.printStackTrace(); } } 

Para el uso MY_UUID

 private static final UUID MY_UUID = UUID.fromString("0000110E-0000-1000-8000-00805F9B34FB"); 

Finalmente han encontrado un trabajo alrededor. No sé por qué esto tiene que hacerse para funcionar correctamente.

IOException: error de lectura, socket podría cerrarse – Bluetooth en Android 4.3

Asumiendo (comprobar!) El UUID que está utilizando es de hecho el servidor UUID, su mejor opción sería intentar modo inseguro de comunicación Bluetooth. Algunos dispositivos simplemente no admiten el modo seguro.

Para hacer que duplicar su flujo, la sustitución de createRfcommSocketToServiceRecord con createInsecureRfcommSocketToServiceRecord y "createRfcommSocket" con "createInsecureRfcommSocket".

O mejor aún: use BTWiz que encapsule este flujo dentro. BTWiz también proporciona una sencilla API asíncrona para Bluetooth IO.

Por último – socket creation & connect () ión no debe realizarse nunca en el hilo UI. Su código no es concluyente aquí, pero sospecho que tendrá que arreglar esto también.

Gilad Haimov

http://Www.mobileedge.co.il

  • Problema con el archivo de envío de Bluetooth de Android
  • InputStream que es más rápido read () o read (byte, offset, length)
  • Android bluetooth socket.connect () falla
  • Conectar a un socket bloquea la interfaz de usuario
  • Segunda conexión al socket del servidor rechazada en android
  • Android: Capturar imágenes y enviarlas a través de Socket a un applet
  • Bluetooth En Android: mi Socket.connect () bloquea para siempre, y Socket.close no desbloquea
  • Dispositivo Android (excepto la nota de galaxia 2) no puede obtener paquetes UDP
  • RDP a través de Bluetooth
  • ¿Cuál es la diferencia entre DataOutputStream y ObjectOutputStream?
  • Conector de Bluetooth
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.