检查哪种内容代表接收的字节

时间:2015-06-17 20:32:06

标签: android io bluetooth android-bluetooth iobluetooth

我的Bluetooth应用也可以发送图片,但我无法检查内容的类型,如果收到的字节来自图片,则字节必须适用于ImageView,如果接收的字节来自文本,字节必须显示在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");
        }
    }
}

我的问题是,我需要检测接收字节的内容类型,有些代码是用来代替hereSomeTypeDetector吗? 注:
hereSomeTypeDetector只是一个例子。

1 个答案:

答案 0 :(得分:0)

两种方式(无限的方式)

一:第一个字节是类型。无论发送什么,都有一个标题。

二:使用类型字段序列化对象。甚至,也许,层次结构或......更好......当您想要发送文本时写字符串