Leer datos de dispositivos Bluetooth emparejados en Android

Estoy trabajando en una aplicación de Android 4.0 que lee datos del dispositivo bluetooth pareado. Puedo buscar el dispositivo bluetooth detectable y emparejar los dispositivos. Sin embargo, no estoy seguro de cómo leer los datos del dispositivo Bluetooth a través de puerto serie? ¿Soporta el sistema android PORT SERIAL? Porque no puedo encontrar el puerto serial como COM1 o COM2 en el sistema androide. Por el momento, estoy usando el BluetoothSocket para emparejar el dispositivo. Sin embargo, ¿hay alguna manera de leer los datos del puerto serie de Bluetooth como lo hace Windows?

socket = _devices.get(k).createRfcommSocketToServiceRecord(MY_UUID_SECURE); socket.connect(); 

¡Cualquier ayuda apreciada! Gracias en adance.

Saludos,

Charles

Sí hay. El socket que recibe puede darle una instancia de InputStream . Si el socket está conectado, puede leer datos ( char , String o byte , dependiendo del lector que envuelva alrededor de su InputStream , si envuelve uno).

Para abrir un puerto serie con el dispositivo, debe utilizar el Perfil de puerto serie en el UUID que utiliza para crear su socket. Un UUID simple lanzado alrededor en la tela es

 00001101-0000-1000-8000-00805F9B34FB 

A continuación, puede crear su socket, conectarse a él, obtener flujos y leer / escribir bytes con ellos. Ejemplo:

 private static final String UUID_SERIAL_PORT_PROFILE = "00001101-0000-1000-8000-00805F9B34FB"; private BluetoothSocket mSocket = null; private BufferedReader mBufferedReader = null; private void openDeviceConnection(BluetoothDevice aDevice) throws IOException { InputStream aStream = null; InputStreamReader aReader = null; try { mSocket = aDevice .createRfcommSocketToServiceRecord( getSerialPortUUID() ); mSocket.connect(); aStream = mSocket.getInputStream(); aReader = new InputStreamReader( aStream ); mBufferedReader = new BufferedReader( aReader ); } catch ( IOException e ) { Log.e( TAG, "Could not connect to device", e ); close( mBufferedReader ); close( aReader ); close( aStream ); close( mSocket ); throw e; } } private void close(Closeable aConnectedObject) { if ( aConnectedObject == null ) return; try { aConnectedObject.close(); } catch ( IOException e ) { } aConnectedObject = null; } private UUID getSerialPortUUID() { return UUID.fromString( UUID_SERIAL_PORT_PROFILE ); } 

Y luego, en algún lugar de su código puede leer del lector:

 String aString = mBufferedReader.readLine(); 

Y usted puede hacer lo mismo en dirección opuesta usando OutputStream y varios escritores.

  • Transferencia de datos Android + Arduino Bluetooth
  • Lectura Bluetooth RSSI para perfil de proximidad BLE en Android
  • La aplicación android no libera Bluetooth correctamente al salir
  • BluetoothGattCallback nunca sucede? Estado = 0?
  • Compruebe que el SPU UUID 00001101-0000-1000-8000-00805F9B34FB existe en el servidor
  • 16s tiempo hasta que se reconoce la solicitud desconectada del bluetooth
  • Android Bluetooth para conectar otro dispositivo bluetooth
  • Cómo cargar la imagen de la URL en Android desgaste?
  • Conectar varios dispositivos a un dispositivo mediante Bluetooth
  • Transferencia de archivos entre Android y iPhone a través de bluetooth?
  • Conexión Bluetooth sin emparejamiento
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.