Note that there are some explanatory texts on larger screens.

plurals
  1. POBluetooth peer connection reset
    primarykey
    data
    text
    <p>Hi friends, I'm trying to send an file from android device to specific bluetooth device by using third party api called bluecove with obex. I can able to connect the device when connection header set I'm facing up an problem that <strong>peer connection reset.</strong></p> <p>Here my below code snippet. any help on this appreciated.</p> <p>In my activity I'm using below code to process send file </p> <pre><code>BlueCoveImpl.setConfigObject( BlueCoveConfigProperties.PROPERTY_ANDROID_CONTEXT, this); String deviceAddress = "0007ABB6D96E"; int channel = 9; String obexURL = "btgoep://" + deviceAddress + ":" + "0000110600001000800000805f9b34fb" + ";android=true"; // String obexURL = "btgoep://" + deviceAddress + ":" + channel // + ";android=true"; String fileToSend = "sdcard/DSCN9379.jpg"; System.out.println("Connecting to " + obexURL); FileInputStream stream = new FileInputStream(fileToSend); File f = new File(fileToSend); int size = (int) f.length(); byte file[] = new byte[size]; stream.read(file); String filename = f.getName(); System.out .println("***************Now sending file to device*****************"); SendFileTask task = new SendFileTask(MainActivity.this, obexURL, file, filename); Thread thread = new Thread(task); thread.start(); </code></pre> <p>================ below that i'm trying to connect bluecove connection class object with header set as follows.</p> <pre><code>package com.example.bluecovesample; import java.io.OutputStream; import javax.microedition.io.Connection; import javax.microedition.io.Connector; import javax.obex.ClientSession; import javax.obex.HeaderSet; import javax.obex.Operation; import javax.obex.ResponseCodes; //import static write ; import android.content.Context; import android.widget.Toast; public class SendFileTask implements Runnable { private byte[] file; private String filename; public static final int WRITE = 2; String logString; int responseCode; Context context; String obexURL; public SendFileTask(Context ctx, String obexUrl, byte[] file, String filename) { this.context = ctx; this.obexURL = obexUrl; this.file = file; this.filename = filename; } public void run() { Connection connection = null; try { System.out.println(obexURL); // for ( int i = 0; i 3; i++ ) { // connection = Connector.open("btgoep://"+btConnectionURL+ // ":6"); connection = Connector.open(obexURL); } // connection obtained // now, let's create a session and a headerset objects ClientSession cs = (ClientSession) connection; HeaderSet hs = cs.createHeaderSet(); // toastMsg(hs.toString()); // now let's send the connect header // cs.notifyAll(); **cs.connect(hs);** hs.setHeader(HeaderSet.NAME, filename); // System.out.println("sfname:"+filename); int dotIndex = filename.lastIndexOf("."); // System.out.println("doti:"+dotIndex); String extension = filename.substring(dotIndex).toLowerCase(); // System.out.println("sfname:"+extension); if (extension.equals(".txt")) { hs.setHeader(HeaderSet.TYPE, "text/plain"); } else if (extension.equals(".jpg") || extension.equals(".jpeg")) { hs.setHeader(HeaderSet.TYPE, "image/jpeg"); } else if (extension.equals(".mpeg") || extension.equals(".mpg") || extension.equals(".mp3")) { hs.setHeader(HeaderSet.TYPE, "video/mpeg"); } else if (extension.equals(".wav")) { hs.setHeader(HeaderSet.TYPE, "audio/x-wav"); } else if (extension.equals(".3gp")) { hs.setHeader(HeaderSet.TYPE, "image/jpeg"); } else if (extension.equals("mid") || extension.equals("rmi")) { hs.setHeader(HeaderSet.TYPE, "audio/mid"); } hs.setHeader(HeaderSet.LENGTH, new Long(file.length)); Operation putOperation = cs.put(hs); // System.out.println("response code:"+putOperation.getResponseCode()); // putOperation.getResponseCode(); // this.responseCode = putOperation.getResponseCode(); OutputStream outputStream = putOperation.openOutputStream(); outputStream.write(file); // file push complete outputStream.close(); responseCode = putOperation.getResponseCode(); putOperation.close(); cs.disconnect(null); connection.close(); // file successfully sent System.out.println("RESPONSE CODE " + responseCode); if (responseCode == ResponseCodes.OBEX_HTTP_OK) { System.out.println("FILE SUCCESSFULLY SENT " + filename); } else { System.out.println("FILE SUCCESSFULLY NOT SENT" + filename + " not in exception"); } } catch (Exception e) { System.out.println("FILE SUCCESSFULLY NOT SENT" + filename + " in exception"); // System.out.println("In exception"); e.printStackTrace(); try { connection.close(); } catch (Exception ex) { System.out.println("error closing connection" + ex.toString()); } } } private void toastMsg(String msg) { Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); } } </code></pre> <p>While executing the above code i got connection accept notification dialog on destination device and then notified that peer connection rest at while executing line *cs.connect(hs); in my logcat. Logcat stack trace :</p> <blockquote> <p>07-11 14:48:07.044: W/System.err(4527): java.io.IOException: Connection reset by peer 07-11 14:48:07.052: W/System.err(4527): at android.bluetooth.BluetoothSocket.readNative(Native Method) 07-11 14:48:07.059: W/System.err(4527): at android.bluetooth.BluetoothSocket.read(BluetoothSocket.java:336) 07-11 14:48:07.059: W/System.err(4527): at android.bluetooth.BluetoothInputStream.read(BluetoothInputStream.java:96) 07-11 14:48:07.059: W/System.err(4527): at com.intel.bluetooth.BluetoothStackAndroid.connectionRfRead(BluetoothStackAndroid.java:437) 07-11 14:48:07.059: W/System.err(4527): at com.intel.bluetooth.BluetoothRFCommInputStream.read(BluetoothRFCommInputStream.java:139) 07-11 14:48:07.059: W/System.err(4527): at com.intel.bluetooth.obex.OBEXUtils.readFully(OBEXUtils.java:71) 07-11 14:48:07.059: W/System.err(4527): at com.intel.bluetooth.obex.OBEXSessionBase.readPacket(OBEXSessionBase.java:217) 07-11 14:48:07.059: W/System.err(4527): at com.intel.bluetooth.obex.OBEXClientSessionImpl.connectImpl(OBEXClientSessionImpl.java:100) 07-11 14:48:07.059: W/System.err(4527): at com.intel.bluetooth.obex.OBEXClientSessionImpl.connect(OBEXClientSessionImpl.java:85) 07-11 14:48:07.059: W/System.err(4527): at com.example.bluecovesample.SendFileTask.run(SendFileTask.java:78) 07-11 14:48:07.059: W/System.err(4527): at java.lang.Thread.run(Thread.java:1019)</p> </blockquote>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload