@Override
  public void connect(String address) {

    if (dialog != null && dialog.isShowing()) {
      dialog.dismiss();
    }

    currentBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
    if (currentBluetoothAdapter == null) {
      DisplayUtilities.ShowLargeMessage(
          this.context.getString(R.string.bluetooth_not_supported), "", view, true, null);
      return;
    }

    if (currentBluetoothAdapter.isEnabled()) {
      createConnection(address);
    } else {
      DisplayUtilities.ShowLargeMessage(
          this.context.getString(R.string.bluetooth_cant_connect), "", view, false, null);
    }
  }
 // creamos el socket para conectarnos
 private BluetoothSocket createBluetoothSocket(BluetoothDevice device) throws IOException {
   if (Build.VERSION.SDK_INT >= 10) {
     try {
       final Method m =
           device
               .getClass()
               .getMethod("createInsecureRfcommSocketToServiceRecord", new Class[] {UUID.class});
       return (BluetoothSocket) m.invoke(device, MY_UUID);
     } catch (Exception e5) {
       Log.e(kdUINOApplication.TAG, "Could not create Insecure RFComm connection", e5);
       DisplayUtilities.ShowLargeMessage(
           this.context.getString(R.string.bluetooth_cant_connect), "", view, false, null);
     }
   }
   return device.createRfcommSocketToServiceRecord(MY_UUID);
 }
  public void createConnection(String address) {

    BluetoothDevice device = currentBluetoothAdapter.getRemoteDevice(address);

    try {
      btSocket = createBluetoothSocket(device);

    } catch (IOException e1) {

      Log.e(
          kdUINOApplication.TAG,
          "Fatal Error,In onResume() and socket create failed,TRY TO CONNECT AGAIN!",
          e1);
      DisplayUtilities.ShowLargeMessage(
          this.context.getString(R.string.bluetooth_cant_connect), "", view, false, null);
    }

    // cancelamos la búsqueda
    if (currentBluetoothAdapter.isDiscovering()) {
      currentBluetoothAdapter.cancelDiscovery();
    }

    // establecemos la conexión
    try {

      btSocket.connect();

    } catch (IOException exception) {

      try {

        Log.e(
            kdUINOApplication.TAG,
            "Fatal Error,In onResume() and socket create failed, TRY AGAIN!",
            exception);
        DisplayUtilities.ShowLargeMessage(
            this.context.getString(R.string.bluetooth_cant_connect), "", view, false, null);

        btSocket.close();
        return;

      } catch (IOException e3) {

        Log.e(
            kdUINOApplication.TAG,
            "Fatal Error,In onResume() and unable to close socket during connection failure",
            e3);
        DisplayUtilities.ShowLargeMessage(
            this.context.getString(R.string.bluetooth_cant_connect), "", view, false, null);
        return;
      }

    } catch (Exception ex) {
      DisplayUtilities.ShowLargeMessage(
          this.context.getString(R.string.bluetooth_cant_connect), "", view, false, null);
      return;
      // btSocket.close();
    }
    // una vez creada la conexión creamos un outputStrem i inputStream para operar con el
    // posteriormente
    try {
      outputStream = btSocket.getOutputStream();
      inputStream = btSocket.getInputStream();

    } catch (IOException exception) {
      Log.e(
          kdUINOApplication.TAG,
          "Fatal Error,In onResume() and output/input stream creation failed",
          exception);
      DisplayUtilities.ShowLargeMessage(
          this.context.getString(R.string.bluetooth_cant_connect), "", view, false, null);

    } catch (Exception ex) {
      DisplayUtilities.ShowLargeMessage(
          this.context.getString(R.string.bluetooth_cant_connect), "", view, false, null);
      return;
      // btSocket.close();
    }

    //  bus.post(new KdUinoMessageBusEvent(KdUINOMessages.BLUETOOTH_CONNECT_TO_KDUINO, address));

    // una vez conectados vamos al menu control

  }