I'll need to see some HCI or LMP logs to see why the connection gets
dropped.

Nick

On Tue, Nov 24, 2009 at 4:32 PM, Sean Liao <[email protected]> wrote:

> The test driver doesn't get blocked:  numOfAvailable is always zero. I bet
> if I remove the instream.available() check.  I would get the same exception
> as the one writing to output stream.
>
> Pluggin a debugger onto the remote device, I found the connection
> immediately gets disconnected by my android test driver regardless read or
> write from the subsequent calls.
>
> ... one custom feature on the remote device:  after connecton being made,
> it would request a role switch.  On other phones, if the local device/phone
> doesn't support role switch, the connection simply remains without role
> switching.  Just wondering why the connection gets connected but immediately
> dropped ...
>
>
>
>
>
>
>
>
>
>
> On Tue, Nov 24, 2009 at 4:18 PM, Nick Pelly <[email protected]> wrote:
>
>> At first glance, the problem is probably that instream.read() will block
>> until it has 512 bytes. Are you sending enough bytes?
>>
>> If you did not intend to send 512 bytes (i cant tell without your server
>> code), you should use pass numOfAvailable into instream.read(), and it
>> should return straight away.
>>
>> Nick
>>
>>
>>
>> On Tue, Nov 24, 2009 at 1:22 PM, Sean Liao <[email protected]>wrote:
>>
>>> got another error from writing.  wondering if this might be related.
>>>
>>> 11-24 13:07:27.731: ERROR/BluetoothEventLoop.cpp(1015): event_filter:
>>> Received signal org.bluez.Device:PropertyChanged from
>>> /org/bluez/1973/hci0/dev_00_08_1B_CA_C7_29
>>> 11-24 13:07:28.606: VERBOSE/BluetoothEventRedirector(1138): Received
>>> android.bleutooth.device.action.UUID
>>> 11-24 13:07:30.015: DEBUG/(2254): getOutputStream
>>> 11-24 13:07:30.052: ERROR/(2254): bt write failed
>>> *11-24 13:07:30.052: ERROR/(2254): java.io.IOException: Transport
>>> endpoint is not connected*
>>>
>>> I connected an debugger into remote device, and found the Android/My test
>>> driver initiated an disconnect immediately after connect.
>>>
>>> Really appreciate if you can point out what is wrong with my test driver.
>>>
>>> Sean
>>>
>>>
>>>
>>>
>>>
>>> On Tue, Nov 24, 2009 at 12:45 PM, Sean Liao <[email protected]>wrote:
>>>
>>>> Hi, I wrote a simple test driver to test the bluetooth apis.  Anyone can
>>>> verify whether I am using the API correctly?  Everything seems good but no
>>>> data read :-(
>>>>
>>>>
>>>>
>>>>
>>>> ===========================================================================
>>>> // before calling the following, inquiry scan successfully returned, and
>>>> the remote device is pre-paired.
>>>>
>>>>    private boolean doTestConnection() {
>>>>
>>>>       Log.d("SwxBtCommImpl", "doTestConnection");
>>>>
>>>>       String btAddr = "00:08:1B:CA:C7:29";
>>>>
>>>>       BluetoothDevice btdev =
>>>> BluetoothAdapterImpl.getInstance().getRemoteDevice(btAddr);
>>>>
>>>>       // widcom using the following GUID
>>>>       // 00001101-0000-1000-8000-00805F9B34FB
>>>>       UUID uuid =
>>>> UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
>>>>
>>>>       try {
>>>>          BluetoothSocket btsocket =
>>>> btdev.createRfcommSocketToServiceRecord(uuid);
>>>>
>>>>          btsocket.connect();
>>>>          Log.d("SwxBtCommImpl", "connected");
>>>>
>>>>          try {
>>>>             Thread.sleep(1000);
>>>>          } catch (InterruptedException e1) {
>>>>             // TODO Auto-generated catch block
>>>>             e1.printStackTrace();
>>>>          }
>>>>
>>>>          InputStream instream = btsocket.getInputStream();
>>>>          Log.d("", "getInputStream");
>>>>
>>>>          byte[] data = new byte[512];
>>>>          for (int i = 0; i < 20; i++) {
>>>>             int numOfAvailable = instream.available();
>>>>
>>>>             Log.d("SwxBtCommImpl", "read " + i + ": " + numOfAvailable +
>>>> " bytes");
>>>>             if(numOfAvailable > 0) {
>>>>                int numOfRead = instream.read(data);
>>>>                Log.d("SwxBtCommImpl", new String(data) + "-" +
>>>> numOfRead);
>>>>             } else {
>>>>
>>>>                try {
>>>>                   Thread.sleep(500);
>>>>                } catch (InterruptedException e) {
>>>>                   // TODO Auto-generated catch block
>>>>                   e.printStackTrace();
>>>>                }
>>>>             }
>>>>          }
>>>>
>>>>          instream.close();
>>>>          instream = null;
>>>>
>>>>          btsocket.close();
>>>>
>>>>       } catch (IOException e) {
>>>>          // TODO Auto-generated catch block
>>>>          Log.e("", "bt connection failed", e);
>>>>       }
>>>>
>>>>
>>>>
>>>>       return true;
>>>>    }
>>>>
>>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "Android Developers" group.
>>> To post to this group, send email to [email protected]
>>> To unsubscribe from this group, send email to
>>> [email protected]<android-developers%[email protected]>
>>> For more options, visit this group at
>>> http://groups.google.com/group/android-developers?hl=en
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google
>> Groups "Android Developers" group.
>> To post to this group, send email to [email protected]
>> To unsubscribe from this group, send email to
>> [email protected]<android-developers%[email protected]>
>> For more options, visit this group at
>> http://groups.google.com/group/android-developers?hl=en
>
>
>  --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]<android-developers%[email protected]>
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to