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

