Отправить файл на другое устройство Bluetooth с Android - PullRequest
1 голос
/ 08 февраля 2012

Я пытаюсь отправить файл с Android на другое устройство, используя следующий код

        socket = device.createRfcommSocketToServiceRecord(uuid);
        socket.connect();
        OutputStream os = socket.getOutputStream();
        File f = new File(strPath);
        byte [] buffer = new byte[(int)f.length()];
        FileInputStream fis = new FileInputStream(f);
        BufferedInputStream bis = new BufferedInputStream(fis);
        bis.read(buffer,0,buffer.length);
        os.write(buffer,0,buffer.length);
        os.flush();
        os.close();
        socket.close();

Я добавил BLUETOOTH и BLUETOOTH_ADMIN в разрешения пользователя в AndroidManifest.xml

Но файл не являетсяпередача, установление соединения ч / б устройства

Ответы [ 2 ]

2 голосов
/ 08 февраля 2012

Я не знаю, почему ваш путь не работает, если кто-то знает ответ, пожалуйста, напишите мне, что я хотел бы знать.Но ниже показано, как заставить мою работать, я в основном отправляю файл кусками по 1024 байта.

/*Transmit*/
private OutputStream mOut;
byte[] mBuffer = byte[1024]
mBtSocket = _socket;
mOut = mBtSocket.getOutputStream();
InputStream inFile = new FileInputStream(file);
while((mLen = inFile.read(mBuffer, 0, 1024)) > 0){
         mOut.write(mBuffer, 0, mLen);
}

/*Receive*/
private InputStream mIn;
byte[] mBuffer = byte[1024]
File file = new File(fileName);
OutputStream outFile = new FileOutputStream(file);
long bytesReceived = 0;
while (bytesReceived < fileSize) {  // I send fileSize as msg prior to this file transmit
    mLen = mIn.read(mBuffer);
if(mLen > 0) {
    bytesReceived+=mLen;
    outFile.write(mBuffer, 0, mLen);
} else {
    Log.d(TAG,"Read received -1, breaking");
    break;
}
}
outFile.close();
0 голосов
/ 08 февраля 2012

Вишну, пожалуйста, перейдите по следующей ссылке

Это касается вашего вопроса, я думаю, вы могли бы получить помощь от этого , этого и этого .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...