0

我的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 只是一个示例。

4

1 回答 1

0

两种方式(无限的方式)

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

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

于 2015-06-17T21:47:46.837 回答