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

Reply via email to