Bluetooth



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 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