0 votos
Estimados acudo a su ayuda, le comento un poco cual seria mi inquietud. Necesito enviar valores en hexadecimal a un microcontrolador PIC a traves de bluetooth utilizando un modulo HC-05, el envío a través de la aplicación lo haria con un Button y necesitaría enviar por ejemplo lo siguiente:  "C9-00-00-0D-01-16-24-CA"   Y hasta ahora no se bien como hacerlo, he probado descargando otras aplicaciones a través de la app store de google como por ejemplo "Bluetooth Serial Controller" y funciona perfectamente, pero quiero crear mi propia aplicación y diseñarla y mi experiencia es prácticamente nula en esto.  Quisiera saber como debería proceder para realizar correctamente un aplicación que me funcione para mi fin.  Saludos Cordiales
preguntado por juanma1364 Feb 22, 2018 en Android

1 Respuesta

+1 voto

No es muy complicado utilizar el Bluetooth, pero es un poco largo de explicar por aquí. Tienes un ejemplo muy sencillo en español paso a paso en: https://developer.android.com/guide/topics/connectivity/bluetooth.html?hl=es-419

respondido por Ramon [Admin] Mar 5, 2018
Hola Ramon, muchas gracias por la repuesta, he echo la aplicacion y logre conectarme y vincularme, pero no logre enviar correctamente los comandos porque la placa que recibe dichos datos no responde antes los comandos enviados. Voy a seguir intentando, no se si puede poner el codigo aca, pero bueno si es posible indicamelo. Muchas Gracias
Si tienes cualquier duda que te podamos resolver, puedes poner aquí trozos de código para echarte una mano por nosotros o por la comunidad ;)

Hola Ramon, adjunto imagen de una parte de lo hecho con android studio, en lo que no estoy seguro si estoy haciendo de manera correcta, es en el envio de los propios valores en hexadecimal.

Si la imagen no es claro pido disculpas, la verdad no se bien si es factible subirla en mejor calidad, si no se aprecia envio la parte del codigo descripto en la imagen.

Saludos y gracias por ayudarme en esto
Mejor si puedes enviar el código, por favor :)

Hola Ramon, gracias nuevamente, Te envío el código en la parte de evento de los Button de enviar:

// Configuracion onClick listeners para los botones 
// para indicar que se realizara cuando se detecte 
// el evento de Click 
IdEncender.setOnClickListener(
    new View.OnClickListener() { 
        public void onClick(View v) { 
            MyConexionBT.writeHex(
                i:0xC9,
                i1:0x00,
                i2:0x00,
                i3:0x0D,
                i4:0x01,
                i5:0x16,
                i6:0x24,
                i7:0xCA);
        } 
    }
);
    
IdApagar.setOnClickListener(
    new View.OnClickListener() { 
        public void onClick(View v) { 
            MyConexionBT.writeHex(
                i:0xC9,
                i1:0x00,
                i2:0x00,
                i3:0x0E,
                i4:0x01,
                i5:0x17,
                i6:0x26,
                i7:0xCA); 
            
        } 
        
    }
); 
    
IdDesconectar.setOnClickListener(
    new View.OnClickListener() { 
        public void onClick(View v) { 
            if (btSocket!=null) { 
                try {
                    btSocket.close();
                    
                } catch (IOException e) { 
                    Toast.makeText(
                        getBaseContext(), 
                        "Error", 
                        Toast.LENGTH_SHORT).show();;
                    
                } 
                
            } 
            finish(); 
            
        } 
        
    }
); 
    
//Al realizar este se creo el siguiente void: 
public void writeHex(
    int i, 
    int i1, 
    int i2, 
    int i3, 
    int i4, 
    int i5, 
    int i6, 
    int i7) { 
        
    } 

 

Gracias por ayudarme

Puse el codigo de manera ordenada, pero no entiendo porque salio todo seguido. Nuevamente disculpas

Ante todo comprueba que los permisos de bluetooth estén correctamente otorgados a la Activity.

<manifest ... >
  <uses-permission android:name="android.permission.BLUETOOTH" />
  ...
</manifest>

No lo veo el código, pero asegurate que se están pasando correctamente con el socket de bluetooth como por ejemplo:

BluetoothSocket socket = ...

tmpOut = socket.getOutputStream()

// Puedes probar con DataOutputStream o sin este directamente con tmpOut.write(0x30)
DataOutputStream doutstream = new DataOutputStream(tmpOut)
doutstream.writeByte(0x30);