2012-02-08 5 views
1

я пытаюсь отправить файл ти от андроида к другому устройству с помощью следующего кодаОтправить файл на другое устройство Bluetooth от андроида

 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

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

+1

Можете ли вы опубликовать полный исходный код, чтобы другой мог легко понять. Благодарю. – anddev

ответ

0

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

Это относительно йо Ур вопрос Я думаю, вы можете получить помощь от this, this и this.

+0

извините, эти ссылки не помогают мне :-( –

+0

ОК .. Какая проблема у вас есть? – dreamcoder

+0

Igot Exception says 02-08 12: 55: 37.659: W/System.err (20167): java.io .IOException: обнаружено обнаружение службы в файле android.bluetooth.BluetoothSocket $ SdpHelper.doSdp (BluetoothSocket.java:410) на android.bluetooth.BluetoothSocket.connect (BluetoothSocket.java:213) на com.myapp.bts.BTSActivity.onClick (BTSActivity.java:83) на android.view.View.performClick (View.java:2485) на android.view.View $ PerformClick.run (View.java:9080) на android.os.Handler.handleCallback (Handler.java:587) на android.os.Handler.dispatchMessage (Handler.java:92) на android.os.Looper.loop (Looper.java:123) –

2

Я не знаю, почему ваш способ не работает, если кто-то знает ответ, пожалуйста, я хотел бы знать. Но ниже, как я получил свою работу, я в основном отправляю файл в куски размером 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

Спасибо за повтор. Можно ли отправить файл на другие телефоны (а не на Android-телефон) метод передачи? –

+0

Да, если вы оба делаете rfcomm – broody

+0

Можете ли вы опубликовать полный исходный код, чтобы другой мог легко понять. Благодарю. – anddev

Смежные вопросы