Hi

Sorry I rechecked logs again. *BEGIN mConnectedThread *seems to be called.
my bad.

Still please add logs before and after connect and send

Regards,
Ajith

On Tue, Feb 8, 2011 at 10:39 AM, Ajith Kamath <[email protected]> wrote:

>
> Hi
>
> From the attached logs, its unclear what is the error.
> Discovery seems to be stopped in an odd manner, but that should not
> generate any problem
> You need to rig the code , add more logs.
>
> Since the connect thread was called, add more logs in Connect thread
> It seems that "*BEGIN mConnectedThread*" is never displayed.
> I think there exists problem in connect thread. Please check this.
>
> Also what I meant by my previous question is that, What kind of h/w are you
> trying to connect to your mobile(Ex: headset, handsfree, carkit etc etc)
>
> Regards,
> Ajith
>
>
>
>
>
>
> On Mon, Feb 7, 2011 at 6:16 PM, Laurent Lugon <[email protected]>wrote:
>
>> Hi Ajith,
>>
>> You will find the logs attached.
>>
>> I use our own hardware device. It's the product we develop :
>> http://www.secu4.com/en/product.html
>> It's works realy good with the actual software so it's not a hardware
>> issue. I'm developing the new version of the software related to our product
>> and we change different things on the bluetooth connection procedure.
>>
>>   Best regards
>>
>>
>> SECU4 SA
>> Laurent Lugon Moulin
>>
>> Technical & Development Assistant
>> Technopôle 5
>> 3960 Sierre – Switzerland
>>
>> Office  :   +4127 4567 931
>> Fax      :   +4127 4567
>> 935
>> Mobile :   +4179 4509 566
>>
>> Skype :   laurent.lugon.moulin
>>
>> www.secu4.com
>>
>>
>>
>>
>>
>>
>> On Mon, Feb 7, 2011 at 12:01, Ajith Kamath <[email protected]> wrote:
>>
>>> please paste the logs. And what bluetooth h/w are you trying to connect
>>> to your mobile device
>>>
>>> Regards,
>>> Ajith
>>>
>>>   On Mon, Feb 7, 2011 at 4:21 PM, Laurent Lugon <[email protected]
>>> > wrote:
>>>
>>>>  Hi all,
>>>>
>>>> I use a hardware bluetooth device and I need to connect it to my mobile
>>>> phone. I've follow the instruction on developer.android.com to set up a
>>>> bluetooth connection but I still have a problem. When I'm connecting to the
>>>> Bluetooth Socket with bluetoothSocket.connect() I don't catch any exception
>>>> so according to the docs, that mean I'm connected to my device. The problem
>>>> is I'm not... Here is my code :
>>>>
>>>>     private class AcceptThread extends Thread {
>>>>         // The local server socket
>>>>         private final BluetoothServerSocket mmServerSocket;
>>>>
>>>>         public AcceptThread() {
>>>>             BluetoothServerSocket tmp = null;
>>>>
>>>>             // Create a new listening server socket
>>>>             try {
>>>>                 tmp = mAdapter
>>>>                         .listenUsingRfcommWithServiceRecord(NAME,
>>>> MY_UUID);
>>>>             } catch (IOException e) {
>>>>                 Log.e(TAG, "listen() failed", e);
>>>>             }
>>>>             mmServerSocket = tmp;
>>>>         }
>>>>
>>>>         public void run() {
>>>>             if (D)
>>>>                 Log.d(TAG, "BEGIN mAcceptThread" + this);
>>>>             setName("AcceptThread");
>>>>             BluetoothSocket socket = null;
>>>>
>>>>             // Listen to the server socket if we're not connected
>>>>             while (mState != STATE_CONNECTED) {
>>>>                 try {
>>>>                     // This is a blocking call and will only return on a
>>>>                     // successful connection or an exception
>>>>                     socket = mmServerSocket.accept();
>>>>                 } catch (IOException e) {
>>>>                     Log.e(TAG, "accept() failed", e);
>>>>                     break;
>>>>                 }
>>>>
>>>>                 // If a connection was accepted
>>>>                 if (socket != null) {
>>>>                     synchronized (BluetoothConnectionService.this) {
>>>>                         switch (mState) {
>>>>                         case STATE_LISTEN:
>>>>                         case STATE_CONNECTING:
>>>>                             // Situation normal. Start the connected
>>>> thread.
>>>>                             connected(socket, socket.getRemoteDevice());
>>>>                             break;
>>>>                         case STATE_NONE:
>>>>                         case STATE_CONNECTED:
>>>>                             // Either not ready or already connected.
>>>> Terminate
>>>>                             // new socket.
>>>>                             try {
>>>>                                 socket.close();
>>>>                             } catch (IOException e) {
>>>>                                 Log.e(TAG, "Could not close unwanted
>>>> socket", e);
>>>>                             }
>>>>                             break;
>>>>                         }
>>>>                     }
>>>>                 }
>>>>             }
>>>>             if (D)
>>>>                 Log.i(TAG, "END mAcceptThread");
>>>>         }
>>>>
>>>>         public void cancel() {
>>>>             if (D)
>>>>                 Log.d(TAG, "cancel " + this);
>>>>             try {
>>>>                 if (mmServerSocket != null)
>>>>                     mmServerSocket.close();
>>>>             } catch (Exception e) {
>>>>                 Log.e(TAG, "close() of server failed", e);
>>>>             }
>>>>         }
>>>>     }
>>>>
>>>>     /**
>>>>      * This thread runs while attempting to make an outgoing connection
>>>> with a
>>>>      * device. It runs straight through; the connection either succeeds
>>>> or
>>>>      * fails.
>>>>      */
>>>>     private class ConnectThread extends Thread {
>>>>         private final BluetoothSocket mmSocket;
>>>>         private final BluetoothDevice mmDevice;
>>>>
>>>>
>>>>         public ConnectThread(BluetoothDevice device) {
>>>>             mmDevice = device;
>>>>             BluetoothSocket connection = null;
>>>>
>>>>             // Get a BluetoothSocket for a connection with the
>>>>             // given BluetoothDevice
>>>>             try {
>>>>                 // device.createRfcommSocketToServiceRecord(MY_UUID);
>>>>                 Method m =
>>>> device.getClass().getMethod("createRfcommSocket",
>>>>                         new Class[] { int.class });
>>>>                 connection = (BluetoothSocket) m.invoke(device, 1);
>>>>                 Utils.pause(100);
>>>>             } catch (Exception e) {
>>>>                 Log.e(TAG, "create() failed", e);
>>>>             }
>>>>             mmSocket = connection;
>>>>         }
>>>>
>>>>         public void run() {
>>>>             Log.i(TAG, "BEGIN mConnectThread");
>>>>             setName("ConnectThread");
>>>>
>>>>             if (mmSocket != null) {
>>>>                 // Always cancel discovery because it will slow down a
>>>>                 // connection
>>>>                     mAdapter.cancelDiscovery();
>>>>
>>>>                 // Make a connection to the BluetoothSocket
>>>>                 try {
>>>>                     // This is a blocking call and will only return on a
>>>>                     // successful connection or an exception
>>>>                     mmSocket.connect();
>>>>                 } catch (Exception e1) {
>>>>
>>>>                     Log.e(TAG, "connect failed", e1);
>>>>                     connectionFailed();
>>>>
>>>>                     // Close the socket
>>>>                     try {
>>>>                         mmSocket.close();
>>>>                     } catch (IOException e2) {
>>>>                         Log.e(TAG,
>>>>                                 "unable to close() socket during
>>>> connection failure",
>>>>                                 e2);
>>>>                     }
>>>>                     // Start the service over to restart listening mode
>>>>                     BluetoothConnectionService.this.start();
>>>>                     return;
>>>>                 }
>>>>                 // Reset the ConnectThread because we're done
>>>>                 synchronized (BluetoothConnectionService.this) {
>>>>                     mConnectThread = null;
>>>>                 }
>>>>
>>>>                 // Start the connected thread
>>>>                 connected(mmSocket, mmDevice);
>>>>             } else {
>>>>                 connectionFailed();
>>>>                 BluetoothConnectionService.this.start();
>>>>             }
>>>>         }
>>>>
>>>>         public void cancel() {
>>>>             try {
>>>>                 if (mmSocket != null) {
>>>>                     mmSocket.close();
>>>>                 }
>>>>             } catch (IOException e) {
>>>>                 Log.e(TAG, "close() of connect socket failed", e);
>>>>             }
>>>>         }
>>>>     }
>>>>
>>>>     /**
>>>>      * This thread runs during a connection with a remote device. It
>>>> handles all
>>>>      * incoming and outgoing transmissions.
>>>>      */
>>>>     private class ConnectedThread extends Thread {
>>>>         private final BluetoothSocket mmSocket;
>>>>         private final DataInputStream mmInStream;
>>>>         private final OutputStream mmOutStream;
>>>>
>>>>         public ConnectedThread(BluetoothSocket socket) {
>>>>             Log.d(TAG, "create ConnectedThread");
>>>>             mmSocket = socket;
>>>>             InputStream tmpIn = null;
>>>>             OutputStream tmpOut = null;
>>>>
>>>>             // Get the BluetoothSocket input and output streams
>>>>             try {
>>>>                 tmpIn = socket.getInputStream();
>>>>                 tmpOut = socket.getOutputStream();
>>>>                 isConnected = true;
>>>>             } catch (IOException e) {
>>>>                 Log.e(TAG, "temp sockets not created", e);
>>>>                 isConnected = false;
>>>>             }
>>>>
>>>>             mmInStream = new DataInputStream(tmpIn);
>>>>             mmOutStream = tmpOut;
>>>>         }
>>>>
>>>>         public void run() {
>>>>             Log.i(TAG, "BEGIN mConnectedThread");
>>>>
>>>>             while (isConnected) {
>>>>                 Utils.pause(5);
>>>>                 isConnected = checkConnection();
>>>>             }
>>>>         }
>>>>
>>>>         /**
>>>>          * Check if the connection is still alive
>>>>          *
>>>>          * @return true or false
>>>>          */
>>>>         private boolean checkConnection() {
>>>>             synchronized (mmInStream) {
>>>>                 try {
>>>>                     int len = mmInStream.available();
>>>>                     if (len > 0) {// Checks the available amount
>>>>                         byte b[] = new byte[len];
>>>>                         mmInStream.readFully(b, 0, len);
>>>>                         mHandler.obtainMessage(MESSAGE_READ, len, -1, b)
>>>>                                 .sendToTarget();
>>>>                     }
>>>>                     return true;
>>>>                 } catch (IOException ioe) {
>>>>                     Log.e(TAG, "disconnected", ioe);
>>>>                     connectionLost();
>>>>                     return false; // Connection is lost.
>>>>                 }
>>>>             }
>>>>         }
>>>>
>>>>
>>>> Thank you for your help !
>>>>
>>>>   Best regards
>>>>
>>>>
>>>> SECU4 SA
>>>> Laurent Lugon Moulin
>>>>
>>>> Technical & Development Assistant
>>>> Technopôle 5
>>>> 3960 Sierre – Switzerland
>>>>
>>>> Office  :   +4127 4567 931 <tel:+41274567931>
>>>> Fax      :   +4127 4567 935 <tel:+41274567935>
>>>>
>>>> Skype :   laurent.lugon.moulin
>>>>
>>>> www.secu4.com
>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> 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