Bluetooth
Método para Control de Bluetooth del móvil
Sirve para conectarse por puerto serie a un dispositivo bluetooth.
Métodos | Descripción |
---|---|
connect | Conecta a la dirección MAC especificada por parámetro, o a la guardada por BluetoothSerialPort.selectBluetoothDevice |
disconnect | Desconecta el socket bluetooth limpiamente |
getDiscoverableBluetoothDevices | Es el resultado de BluetoothSerialPort.getDiscoverableDevices |
read | Lee X bytes del socket bluetooth. Devuelve el resultado convertido a cadena |
selectBluetoothDevice | Muestra una pantalla para seleccionar el dispositivo bluetooth |
setTimeout | Define un timeout para las operaciones de lectura/escritura |
sleep | Duerme durante X milisegundos |
write |
Funcionalidades implementadas para Control de Bluetooth del móvil
Funcionalidades Implementadas | Descripción |
---|---|
Buscar Dispositivos | Busca los dispositivos disponibles para conectar. |
Seleccionar Dispositivo | Permite seleccionar dispositivo para conectar, devuelto por bluetoothSerial.getDiscoverableBluetoothDevices() y mostrado en lista de dispositivos disponibles. |
Conectar y escribir en puerto serie. | Permite escribir en puerto serie del dispositivo previamente conectado. |
Conectar y leer en puerto serie. | Permite leer en puerto serie del dispositivo previamente conectado. |
Conectar y leer en puerto serie. Recordar dispositivo | Conecta sin parámetros, permite leer y recordará el último dispositivo que se seleccionó. |
Conectar y escribir en puerto serie. Recordar dispositivo | Conecta sin parámetros, permite escribir y recordará el último dispositivo que se seleccionó. |
Conectar Chat | Permite conexión simulando Chat entre dispositivos conectado por bluetooth |
Desconectar Chat | Cierra Chat previamente inicializado por bluetooth. |
Enviar texto | Envía diálogo, cadena de texto entre dispositivos conectados por el bluetooth simulando Chat |
Ejemplos de funciones y uso:
function buscarDispositivos() { ui.showWaitDialog(); try { let lstDevices = bluetoothSerial.getDiscoverableBluetoothDevices(); if (lstDevices === null) { ui.showToast("No se encontraron dispositivos Bluetooth visibles"); } else { let sMessage = ""; for (let i = 0; i < lstDevices.length;i++) { let bluetoothDevice = lstDevices[i]; if (i !== 0) { sMessage = sMessage + "\n"; } sMessage = sMessage + bluetoothDevice.getDeviceName() + " " + bluetoothDevice.getMacAddress() + " " + bluetoothDevice.getRssi() + "dBm"; } ui.msgBox(sMessage, "Mensaje", 0); } } finally { ui.hideWaitDialog(); } } function seleccionarDispositivo() { ui.showWaitDialog(); try { bluetoothSerial.selectBluetoothDevice(); } finally { ui.hideWaitDialog(); } } function escribirPuertoSerie() { ui.showWaitDialog(); try { let bluetoothDevice = null; let lstDevices = bluetoothSerial.getDiscoverableBluetoothDevices(); if (lstDevices === null) { ui.showToast("No se encontraron dispositivos Bluetooth visibles"); } else { for (let i = 0; i < lstDevices.length;i++) { bluetoothDevice = lstDevices[i]; if (bluetoothDevice.getDeviceName() == "zebramz") { break; } else { bluetoothDevice = null; } } } if (bluetoothDevice === null) { throw "No se encontró el dispositivo zebra"; } bluetoothSerial.connect(bluetoothDevice.getMacAddress()); bluetoothSerial.write("hola que tal"); bluetoothSerial.disconnect(); } finally { ui.hideWaitDialog(); } } function leerPuertoSerie() { ui.showWaitDialog(); try { let bluetoothDevice = null; let lstDevices = bluetoothSerial.getDiscoverableBluetoothDevices(); if (lstDevices === null) { ui.showToast("No se encontraron dispositivos Bluetooth visibles"); } else { for (let i = 0; i < lstDevices.length;i++) { bluetoothDevice = lstDevices[i]; if (bluetoothDevice) { if (bluetoothDevice.getDeviceName() == "zebramz") { break; } else { bluetoothDevice = null; } } } } if (bluetoothDevice === null) { throw "No se encontró el dispositivo zebra"; } bluetoothSerial.connect(bluetoothDevice.getMacAddress()); bluetoothSerial.write("! U1 getvar \"appl.date\"\r\n"); bluetoothSerial.sleep("300"); let buffer = bluetoothSerial.read(10); bluetoothSerial.disconnect(); ui.showToast("El buffer vale: " + buffer); } finally { ui.hideWaitDialog(); } } function leerPuertoSerieRecordarDispositivo() { ui.showWaitDialog(); try { //Connect sin parámetros recordará el último dispositivo que se seleccionó bluetoothSerial.connect(); bluetoothSerial.write("! U1 getvar \"appl.date\"\r\n"); bluetoothSerial.sleep("300"); let buffer = bluetoothSerial.read(10); bluetoothSerial.disconnect(); ui.showToast("El buffer vale: " + buffer); } finally { ui.hideWaitDialog(); } } function escribirPuertoSerieRecordarDispositivo() { ui.showWaitDialog(); try { //Connect sin parámetros recordará el último dispositivo que se seleccionó bluetoothSerial.connect(); bluetoothSerial.write("hola que tal"); bluetoothSerial.sleep("3000"); bluetoothSerial.disconnect(); } finally { ui.hideWaitDialog(); } } function connectChat() { ui.showWaitDialog("Conectando..."); try { bluetoothSerial.setTimeout(10000); bluetoothSerial.connect(); ui.showSnackbar("Conectado"); } finally { ui.hideWaitDialog(); } } function disconnectChat() { ui.showWaitDialog("Desconectando..."); try { bluetoothSerial.disconnect(); ui.showSnackbar("Desconectado"); } finally { ui.hideWaitDialog(); } } function sendChat() { if (!self.MAP_TEXTO) { return; } ui.showWaitDialog("Enviando..."); try { bluetoothSerial.write(self.MAP_TEXTO); let sResponse = bluetoothSerial.read(); if (!sResponse) { throw "No hubo respuesta"; } self.MAP_CHAT = self.MAP_CHAT + "\n" + sResponse; ui.refreshValue("MAP_CHAT"); } finally { ui.hideWaitDialog(); } }
Más referencias:BluetoothSerialPort