Cómo implementar el programa J2ME del teléfono móvil para comunicarse con el módulo Bluetooth a través del protocolo. Es decir, utiliza tu teléfono para enviar datos al módulo Bluetooth y luego al microcontrolador. Sin puntos
importar java.io.DataInputStream;
importar java.io.DataOutputStream
importar java.io.IOException; java.util.
importar java.util.
importar javax.microedition.lcdui.*;
importar javax.microedition.midlet.MIDletStateChangeException ; p>
p>
la clase pública BtSppMid extiende MIDlet implementa Runnable, CommandListener, ItemCommandListener {
cliente público StreamConnection = null
//flujo de datos Bluetooth SPP; p>
public DataInputStream dis = null;
public DataOutputStream dos = null
public boolean running //hilo en ejecución
visualización de visualización pública; = null;
ejecución booleana pública; // indicador de ejecución del hilo
pantalla pública display = null
p>
formulario público = nuevo formulario; ("JB00 Bluetooth suite");
Comando privado cmdSalir = nuevo Comando("Salir", Comando. SALIR,
Comando privado cmdSalir = nuevo Comando("Salir"); , Command.SCREEN, 1); //Detener la búsqueda de dispositivos Bluetooth
comando privado cmdOK = new Command("OK", Command.OK, 1 //Conectarse al servicio SPP del dispositivo); después de encontrar el dispositivo
comando público cmdConnect = new Command("Connect", Command.ITEM, 1 public void sendDataToBluetooth(String data)
{
pruebe
{
dos.write(data.getBytes());
dos.flush()
} captura. (IOException e)
{
e.printStackTrace()
}
}
}
}
}
// Descubrimiento de dispositivos Bluetooth y procesamiento de descubrimiento de servicios
clase MyDiscoveryListener implementa DiscoveryListener {
Midlet BtSppMid;
MyDiscoveryListener público (midlet BtSppMid) {
this.midlet = midlet;
}
public MyDiscoveryListener(BtSppMid midlet) {
this.
dispositivo vacío público descubierto (RemoteDevice btDevice, DeviceClass cod) {
String name = null;
Después de mostrarlo como StringItem en la pantalla, agregue el comando y guárdelo en el vector
tmpItem = new StringItem(null, nombre);
midlet.
midlet.devItem.addElement(tmpItem);
midlet.form.append(( ( StringItem)midlet.devItem.lastElement());
midlet.devices.addElement(btDevice);
}
consulta de anulación pública completada (int discType) {
for(int i=0; ilt; midlet.devices.size(); i )
{
StringItem si = (StringItem)midlet. addElement (adr);
} catch (IOException e) {
}
si.setText(name); //Establece StringItem como nombre del dispositivo< / p>
}
midlet.form.append("/nBúsqueda completa./n");
for(int i=0; ilt; midlet.devItem. tamaño (); i )tamaño(); i )
{
StringItem si = (StringItem)midlet.devItem.elementAt(i);
si . setDefaultCommand(midlet.cmdConnect); //agrega comandos de conexión para cada dispositivo
si.
public void servicesDiscovered(int transID, ServiceRecord[] servRecord) {
if (servRecord.length gt; -1)
{
for(int i = 0; i lt; servRecord.
{ p >
midlet.services.addElement(servRecord [i]);
midlet.form.append(servRecord[i].toString() "/n");
}
}
else{
midlet.form.append("¡No se encontró ningún servicio! /n");
}
}
pub
lic void serviceSearchCompleted(int transID, int ResponseCode) {
midlet.form.append( ResponseCode " es el resultado de la búsqueda./n");
}
}
}
}
}