Cómo borrar el búfer de InputStream bluetooth
En la aplicación de ejemplo bluetoothChat, los datos enviados y recibidos se agregan a un ArrayAdapter denominado mConversationArrayAdapter
. Allí, cada carácter se agrega a la matriz.
En mi caso, tengo una cadena en lugar de una matriz porque no necesito enviar y recibir varios datos, sólo necesito enviar una cadena y recibir una cadena cada vez.
- Algo similar a split ()?
- Error fatal: Diseño no válido de java.lang.String en value
- Convertir ArrayList a String array en Android
- TextView.setText (Android) está causando accidentes .. alguna idea ¿por qué?
- No se pudo encontrar la clase 'android.graphics.drawable.RippleDrawable' Unicode issue?
El problema que tengo es que si primero recibo una cadena como hello world
, y luego recibo una más corta, la primera es superada por la segunda, en lugar de borrar la primera y escribir la nueva.
Por lo tanto, si primero recibo el hello world
, y luego me supposes que tengo que recibir bye
, lo que realmente recibe es byelo world
.
Entonces, ¿cómo puedo borrar el búfer cada vez que un recibir lo que quiero?
Code Snipets
Enviar datos:
byte[] send1 = message_full1.getBytes(); GlobalVar.mTransmission.write(send1);
Escribir llamada:
public void write(byte[] out) { /**Create temporary object*/ ConnectedThread r; /**Synchronize a copy of the ConnectedThread*/ synchronized (this) { if (GlobalVar.mState != GlobalVar.STATE_CONNECTED) return; r = GlobalVar.mConnectedThread; } /**Perform the write unsynchronized*/ r.write(out); }
Escribir Tema:
public void write(byte[] buffer) { try { GlobalVar.mmOutStream.write(buffer); /**Share the sent message back to the UI Activity*/ GlobalVar.mHandler.obtainMessage(GlobalVar.MESSAGE_WRITE, -1, -1, buffer).sendToTarget(); } catch (IOException e) {} }
Finalmente, lea el Tema:
public void run() { byte[] buffer = new byte[12]; // buffer store for the stream int bytes; // bytes returned from read() /**Keep listening to the InputStream until an exception occurs*/ while (true) { try { /**Read from the InputStream*/ bytes = GlobalVar.mmInStream.read(buffer); /**Send the obtained bytes to the UI activity*/ GlobalVar.mHandler.obtainMessage(GlobalVar.MESSAGE_READ, bytes, -1, buffer).sendToTarget(); } catch (IOException e) { GlobalVar.mTransmission.connectionLost(); /**Start the service over to restart listening mode*/ //GlobalVar.mTransmission.start(); break; } } }
- Convertir de String a BigDecimal para hacer matemáticas en moneda
- Org.w3c.dom.Document a String sin javax.xml.transform
- Leer archivo de activos como cadena
- Seguimiento de eventos de Google Analytics: longitud de cadena máxima
- Cómo descodificar el char unicode en cadena de Java?
- Android: convierte la primera letra de la cadena en minúscula
- Eclipse / Java - Valores en R.string. * Return int?
- XML dentro de un recurso de cadena de Android?
prueba esto
bytes = inputStream.read(buffer); buffer[bytes] = '\0';
- el token de acceso eliminado al obtener la información de usuario de facebook
- ¿Por qué cambiar el modo de timbre en android no requiere permisos?