Note that there are some explanatory texts on larger screens.

plurals
  1. POError in Android 2.1 Bluetooth SPP with Inputstream.read
    text
    copied!<p>I Try to connect a Bluetooth Adapter, which send me some Data after sending a Handshake. My Problem is, until the Adapter is sending, the code works fine, but if it stopped, the in.read(xxx Command blocks whithout any exeption. I have to turne off the adapter and wait severeal seconds, then an exception occurs and the Code resumed. How to solve this? (I removed the errorhandling for better understanding)</p> <pre><code>BluetoothAdapter bt_adapter = BluetoothAdapter.getDefaultAdapter(); BluetoothDevice bt_device = null; //Bluetooth not supportet if (bt_adapter == null) { return false; } //enable Bluetooth if (!bt_adapter.isEnabled()) { Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); return false; } //search K01-Blue Adapter Set&lt;BluetoothDevice&gt; pairedDevices = bt_adapter.getBondedDevices(); if (pairedDevices.size() &gt; 0) { for (BluetoothDevice device : pairedDevices) { String name = device.getName(); if (name.contains("K01-Blue")) { bt_device = BluetoothAdapter.getDefaultAdapter().getRemoteDevice(device.getAddress()); break; } } } //Exit if no Adapter found if(bt_device == null){ return false; } //Create Socket try { UUID uuid =UUID.fromString("00001101-0000-1000-8000-00805F9B34FB"); GlobalVars.bluetooth.bt_socket =GlobalVars.bluetooth.bt_device.createRfcommSocketToServiceRecord(uuid); } catch (Exception e) { e.printStackTrace(); } //Exit if socket not created if(bt_socket == null){ return false; } /Connect to Socket, otherwise exit try {bt_socket.connect(); } catch (IOException e1) {return false;} //get InputStream InputStream in = null; try {in = GlobalVars.bluetooth.bt_socket.getInputStream(); } catch (IOException e1) {return false;} //get OutputStream OutputStream out = null; try {out = GlobalVars.bluetooth.bt_socket.getOutputStream() } catch (IOException e1) {return false;} //Say hello to K01 Adapter byte[] hello = {0x2F, 0x3F, 0x21, 0x0D, 0x0A}; try {out.write(hello); } catch (IOException e1) {return false;} //Listen to Answer of K01 Adapter ByteArrayOutputStream buffer = new ByteArrayOutputStream(); int nRead; byte[] data = new byte[1024]; try { nRead = in.read(data, 0, data.length); while (nRead != -1) { nRead = in.read(data, 0, data.length); buffer.write(data, 0, nRead); } } catch (IOException e1) {e1.printStackTrace();} //Create String from Bytearray String str1 = new String(buffer.toByteArray()); </code></pre>
 

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