hola.sigo poniendo avances que he logrado desmenuzando el BlueTerm.poco a poco voy aprendiendo cosas sobre la programacion de android
aunque respecto a este programa.solo entiendo el 50%
de todas formas.he hecho un programa bastante simplificado con partes de blueterm.que ya me hubiera gustado encontrar por internet.
para no perder tantos dias haciendo pruebas.
en este programa hay implementadas varias cosas lo relativamente simples para entender como se realiza una conexion bluetooth.
y el manejo del programa sin que se produzcan errores.
una de las primeras cosas que hace este programa es que cuando abrimos la aplicacion se comprueba si tenemos activado el bluetooth en nuestro telefono.
y si no es asi,se visualiza un mensage invitandonos a activarlo.si elegimos No.la aplicacion se cerrara.si por el contrario elegimos Si.
se abrira otro mensage pidiendonos permiso para activar el bluetooth.si elegimos Si.el bluetooth se activara y podremos empezar a utilizar nuestra
aplicacion.
pero si elegimos No.el bluetooth no se activara.aunque la aplicacion seguira enmarcha.el problema es que al intentar conectar aparecera un mensage
diciendo que no hay dispositivos emparejados.y si hacemos clic en buscar dispositivos,el programa entrara en un bucle intentando buscar dispositivos.
no he querido arreglar esto por no complicar mucho la aplicacion.mas adelante lo arreglare si lo veo oportuno.
esta parte del programa se situa nada mas empezar en: "public synchronized void onResume() {"
parte de los mensages se hubican dentro de: "DeviceListActivity.java"
Cuando tenemos el programa con el bluetooth activado y y la aplicacion corriendo correctamente.lo primero que tenemos que hacer es actuar con el menu.
aunque se pueden poner muchas mas.yo he puesto una sola pestaña.la cual tiene dos estados."conectar" y "desconectar"
aunque es la misma pestaña.solo que le cambiamos el texto segun este activado o desactivado el bluetooth.
esta funcion se gestiona desde las lineas dando comienzo a " public boolean onCreateOptionsMenu(Menu menu) {"
el cual crea la pestaña del menu.
y " public boolean onOptionsItemSelected(MenuItem item) { " que es el que gestiona el accionamiento del las pestañas.
Cuando queramos conectarnos a un dispositivo.seleccionaremos "Conectar" en el menu de opciones.y se nos desplegara una lista
con los dispositivos que previamente teniamos emparejados.dentro de la memoria del telefono.
cuando selecionemos el dispositivo al cual nos queramos conectar.se nos puede dar la condicion de que el dispositivo no esta presente.en consecuencia
nos saldra un mensage de que ha sido imposible conectar.en el caso de que estubiera presente y hubieramos conectado.tambien se puede dar el caso de perder
la conexion.que tambien sera avisado de tal circustancia.
todos estos mensages pueden ser modificados desde "res/values/strings" que es donde hubican parte de las variables de android.
la parte donde se encarga de la gestion de estos mensages es en: " private final Handler mHandlerBT = new Handler() {"
esta no es la mejor forma de indicar el estado de la conexion con el dispositivo.lo suyo seria poner su estado en la barra de titulo.
asi sabriamos en todo momento si la conexion esta activa o se ha interrumpido.pero para no complicar la cosa.lo implementare en proximas modificaciones.
Otra parte del programa muy importante es esta:" public void onActivityResult(int requestCode, int resultCode, Intent data) {"
es la encargada de vincular la MAC del dispositivo a conectar y realizar la conexion.
En el Layout principal de esta aplicacion.solo he implementado un boton que cuando tengamos la conexion realizada.al pulsarlo enviaremos el dato 0x10
al dispositivo bluetooth.
ya que mi intencion es explicar la forma de realizar una conexion.posteriormente implementare el envio/recepcion de datos.
Tambien quiero indicar que en el programa vereis muchas lineas con este aspecto: "if (DEBUG)Log.e(LOG_TAG, "+++ ON CREATE +++");"
aunque tambien vereis estas: "Log.e(LOG_TAG, "+++ ON CREATE +++");" pero con el texto interior de las comillas con otro tipo de mensage.
la diferencia entre estas dos es que la primera tiene una condicional que se ha definido previamente en el comienzo del programa.
y solo es para habilitar/deshabilitar estas lineas.
se supone que la forma correcta es la de la primera linea.aunque las dos funcionan igual.solo se me ocurre que con la primera ahorraremos
mas memoria al compilar el programa y producir el APK. si previamente hubieramos definido DEBUG a "false". pero no he hecho la prueba.
estas lineas solo son unos mensages que se visualizan en la ventana LogCat del Eclipse.y se utilizan para saber que linea se esta ejecutando
en un instante determinado.y que tambien nos puede devolver un valor si lo especificamos en la linea.como:
"if (DEBUG)Log.e(LOG_TAG, "MENSAGE" + Variable);"
hay diferentes tipos de mensages:
Verbose :v
Debug :d
Info :i
Warning :w
Error :e
Assert :a
y que se indican despues de Log.
ESTAS SON LAS LINEAS A INTRODUCIR:
public static final boolean DEBUG = true; : Valor de habilitacion o false para deshabilitacion.
public static final String LOG_TAG = "bluebas"; : Nombre del programa
esto es todo.pronto pondre mas avances.
http://www.4shared.com/rar/mIIq8ydF/BlueBas7.html