Android - 通过蓝牙发送文件

时间:2016-05-31 17:54:58

标签: android bluetooth

我正在开发一个Android应用程序,将文件从一个设备发送到另一个设备。 在两个设备之间建立连接非常有效,但在传输文件时出现了问题。 在接收设备上,文件被创建但不幸的是它是空的。

这是我处理传入文件的代码:

try {
    byte[] buffer = new byte[1024];
    int bytes = 0;
    boolean eof = false;

    File file = new File(Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES), "test.jpg");
    OutputStream os = null;
    try {
        os = new BufferedOutputStream(new FileOutputStream(file));
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }

    while (!eof) {
        bytes = mmInStream.read(buffer);
        int offset = bytes - 11;
        byte[] eofByte = new byte[11];
        eofByte = Arrays.copyOfRange(buffer, offset, bytes);
        String message = new String(eofByte, 0, 11);

        if(message.equals("end of file")) {
            os.flush();
            os.close();

            eof = true;
        } else {
            os.write (buffer);
        }
    }
} catch (IOException e) {
    e.printStackTrace();
}

1 个答案:

答案 0 :(得分:0)

使用DataInputStream / DataOuputStream解决了这个问题。