I must be blind...BluetoothDevice.ACTION_ACL_DISCONNECTED On 28 Kwi, 12:28, Rafał Grzybowski <aguyngue...@gmail.com> wrote: > Almost everything is ok, I cannot get any notification when I loose > the connection to the remote device, OutputStream simple does nothing, > I can see error in the log, but from the client point of view > everything is fine. > > On 25 Kwi, 09:42, Rafał Grzybowski <aguyngue...@gmail.com> wrote: > > > > > I've just installed 1.31.405.4 system update and it looks like fixed. > > > On Apr 19, 6:08 pm, ssozonoff <se...@sozonoff.com> wrote: > > > > Hi, > > > > Well for the moment its even worse on the HTC Desire, I cant even > > > connect to using the SPP profile!!! > > > > I need to spend a little more time to gather more info but its not > > > looking good :-( > > > My understanding is that the Desire sports the same hardware as the > > > Nexus 1.... I would have thought Bluetooth was thoroughly tested on > > > the Nexus 1. > > > > Regards, > > > Serge > > > > On Apr 13, 11:43 pm, Rafał Grzybowski <aguyngue...@gmail.com> wrote: > > > > > Serge, > > > > > Thank you for the reply. I'd be glad to hear how it works on HTC > > > > Desire. > > > > Maybe I'll try to switch to nativeBluetoothcustom library. > > > > > Best regards > > > > > On 13 Kwi, 16:50, ssozonoff <se...@sozonoff.com> wrote: > > > > > > Hello Rafal, > > > > > > I have this exact problem with my HTC Legend as well. I wrote a post > > > > > here but it never appeared?? > > > > > So far I have not been able to solve the issue and I don't know if its > > > > > specific to the Legend. > > > > > In a few days I receive my HTC Desire and will test with that. > > > > > > If you close theBluetoothsocket while your are not stuck in the > > > > > blocking read thestackshould be OK. Its only when closing the socket > > > > > when blocked in the read that thestackgets corrupted. Sadly the only > > > > > way to break out of the blocking read is to close the socket! > > > > > > Please keep me posted if you find anything. > > > > > > Thanks, > > > > > Serge > > > > > > On Apr 13, 1:05 pm, Rafa³ Grzybowski <aguyngue...@gmail.com> wrote: > > > > > > > AfterBluetoothconnection is lost.Bluetoothstackon HTC Legend is > > > > > > messed up. Nothing works tillBluetoothis turned off and on. Here is > > > > > > the sample, the problem is blocking read on the thread but > > > > > > InputStream.available call always returns 0 and cannot be used to > > > > > > implement some ugly, busy-waiting workaround. > > > > > > > package com.example.android.disconnectproblem; > > > > > > > import java.io.IOException; > > > > > > import java.io.InputStream; > > > > > > import java.io.InvalidObjectException; > > > > > > import java.io.OutputStream; > > > > > > import java.util.UUID; > > > > > > > import android.app.Activity; > > > > > > import android.bluetooth.BluetoothAdapter; > > > > > > import android.bluetooth.BluetoothDevice; > > > > > > import android.bluetooth.BluetoothSocket; > > > > > > import android.os.Bundle; > > > > > > import android.os.Handler; > > > > > > import android.os.Message; > > > > > > import android.util.Log; > > > > > > import android.view.View; > > > > > > import android.view.View.OnClickListener; > > > > > > import android.widget.ArrayAdapter; > > > > > > import android.widget.Button; > > > > > > import android.widget.ListView; > > > > > > > public class MainActivity extends Activity { > > > > > > private ArrayAdapter<String> messages = null; > > > > > > private BluetoothAdapter adapter = null; > > > > > > private BluetoothDevice device = null; > > > > > > private BluetoothSocket socket = null; > > > > > > private ConnectedThread thread = null; > > > > > > > /** Called when the activity is first created. */ > > > > > > @Override > > > > > > public void onCreate(Bundle savedInstanceState) { > > > > > > try { > > > > > > super.onCreate(savedInstanceState); > > > > > > super.setContentView(R.layout.main); > > > > > > } > > > > > > catch (Throwable throwable) { > > > > > > } > > > > > > } > > > > > > > @Override > > > > > > public void onStart () { > > > > > > try > > > > > > { > > > > > > super.onStart(); > > > > > > > // setup click handler > > > > > > Button btnConnect = (Button) > > > > > > super.findViewById(R.id.btnConnect); > > > > > > btnConnect.setOnClickListener(new OnClickListener() > > > > > > { > > > > > > public void onClick(View v) { > > > > > > try { > > > > > > MainActivity.this.doConnect(); > > > > > > } > > > > > > catch (Throwable throwable) { > > > > > > > > > > > > MainActivity.this.handleThrowable("doConnect > > > > > > failed", throwable); > > > > > > } > > > > > > } > > > > > > }); > > > > > > > Button btnDisconnect = (Button) > > > > > > super.findViewById(R.id.btnDisconnect); > > > > > > btnDisconnect.setOnClickListener(new > > > > > > OnClickListener() { > > > > > > public void onClick(View v) { > > > > > > try { > > > > > > MainActivity.this.doDisconnect(); > > > > > > } > > > > > > catch (Throwable throwable) { > > > > > > > > > > > > MainActivity.this.handleThrowable("doDisconnect > > > > > > failed", throwable); > > > > > > } > > > > > > } > > > > > > }); > > > > > > > // setup messages > > > > > > this.messages = new ArrayAdapter<String>(this, > > > > > > R.layout.message); > > > > > > > ((ListView)super.findViewById(R.id.lstMessages)).setAdapter(this.messages); > > > > > > } > > > > > > catch (Throwable throwable) { > > > > > > this.handleThrowable("onStart failed", throwable); > > > > > > } > > > > > > } > > > > > > > private void doConnect () throws Throwable{ > > > > > > if (this.adapter == null) { > > > > > > this.adapter = BluetoothAdapter.getDefaultAdapter(); > > > > > > this.addMessage("adapter retrieved"); > > > > > > } > > > > > > > if (this.device == null) { > > > > > > this.device = > > > > > > adapter.getRemoteDevice("00:18:9A:01:3E:7E"); > > > > > > this.addMessage("device retrieved"); > > > > > > } > > > > > > > if (this.socket != null) { > > > > > > throw new InvalidObjectException("Socket already > > > > > > retrieved"); > > > > > > } > > > > > > else { > > > > > > this.socket = > > > > > > device.createRfcommSocketToServiceRecord(UUID.fromString("00001101-0000-100 > > > > > > 0-8000-00805F9B34FB")); > > > > > > this.addMessage("socket retrieved"); > > > > > > } > > > > > > > socket.connect(); > > > > > > this.addMessage("connected"); > > > > > > > this.thread = new ConnectedThread(this.socket); > > > > > > this.thread.start(); > > > > > > /* > > > > > > InputStream input = socket.getInputStream(); > > > > > > this.addMessage("input stream opened"); > > > > > > > OutputStream output = socket.getOutputStream(); > > > > > > this.addMessage("output stream opened"); > > > > > > Thread.sleep(2000); > > > > > > > output.close(); > > > > > > this.addMessage("output stream closed"); > > > > > > > input.close(); > > > > > > this.addMessage("input stream closed"); > > > > > > > socket.close (); > > > > > > this.addMessage("closed"); > > > > > > */ > > > > > > } > > > > > > > private void doDisconnect () throws Throwable { > > > > > > this.thread.cancel(); > > > > > > this.socket.close(); > > > > > > this.socket = null; > > > > > > } > > > > > > private void addMessage (String message) { > > > > > > this.messages.add(message); > > > > > > } > > > > > > > Handler addMessageHandler = new Handler(){ > > > > > > @Override > > > > > > public void handleMessage(Message msg) { > > > > > > MainActivity.this.addMessage ((String)msg.obj); > > > > > > } > > > > > > }; > > > > > > > protected void handleThrowable (String message, Throwable > > > > > > throwable) { > > > > > > if (Log.isLoggable( > > > > > > "Disconnect Problem", > > > > > > Log.ERROR) == false) { > > > > > > return; > > > > > > } > > > > > > > Log.e( > > > > > > "Disconnect Problem", > > > > > > message, > > > > > > throwable); > > > > > > > String errorMessage = throwable.getMessage(); > > > > > > > if (errorMessage == null) { > > > > > > // no error message provided, display > > > > > > something > > > > > > errorMessage = String.format( > > > > > > "An error occurred %s", > > > > > > > > ... > > więcej »
-- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en