蓝牙条码getInputStream()

时间:2012-03-14 07:55:22

标签: java android

我正在使用蓝牙条形码阅读器将文本传送到编辑文本。问题是,它会将条形码文本删除大约一半的时间,并向我发送不完整的文本。

我使用的是“BluetoothSocket”类。 这是我的阅读代码:

int bytes = socket.getInputStream().read(buffer);

message = message + new String(buffer, 0, bytes);

// Send the obtained bytes to the UI Activity
handler.post(new MessagePoster(textView, message));

我正在寻找一种让getInputStream()的动作更长的方法

2 个答案:

答案 0 :(得分:1)

这样的东西应该可以工作,只需继续直到字符串是预期的长度。我假设流不断继续。

InputStream stream = socket.getInputStream();
StringBuilder builder = new StringBuilder();
do {
    byte [] buffer = new byte[256];
    int bytes = stream.read(buffer);
    builder.append(new String(buffer, 0, bytes));
} while ((builder.length() < 10));
String completeStr = builder.toString();

答案 1 :(得分:0)

你可以使用这样的内容来阅读InputStream ...

InputStream i = socket.getInputStream();
        int c;
        String message;
        StringBuffer s = new StringBuffer("");
        while((c=i.read())!=-1)
        {
            s.append((char)c);
        }
        message = s.toString();