My Bluetooth
app is able to send images too, but I can't check the type of content, if received bytes are from image, the bytes must apply to ImageView
, and if received bytes are from text, the bytes must be shown on a Toast.makeText().show()
private class StreamThread extends Thread {
public StreamThread() {
}
public void run() {
byte[] buffer = new byte[1000000];
int bytes;
while (true) {
try {
bytes = bluetoothIn.read(buffer);
//Received bytes can represent text or image
//if (hereSomeTypeDetector=="image/*") {
// update the UI and show the image
//} else if (hereSomeTypeDetector=="text/plain") {
// show a toast
//}
} catch (IOException e) {
Log.e(TAG, "Unable to receive bytes");
break;
}
}
}
public void write(byte[] data) {
try {
bluetoothOut.write(data);
} catch (IOException e) {
Log.e(TAG, "Unable to send bytes");
}
}
}
My problem is, I need to detect content type of received bytes, some code for use it instead of hereSomeTypeDetector
?
NOTE:
hereSomeTypeDetector is only an example.
Two ways (of the infinity of ways)
One: first byte to be the type. Kind of a header for whatever you send.
Two: serialize an object with a type field. Even, maybe, a hierarchy or... Better... Write String when you want to send texts or so