lunes, 31 de diciembre de 2007

"Serialización" en J2ME

Antes de que acabase el año, he querido experimentar el tema de la "Serialización" de objetos en J2ME.

Antes de nada, el proceso de serialización, consiste en convertir, objetos, variables... en una cadena de Bytes.

De esta forma, en el servidor, podría componer un objeto "Usuario" por ejemplo, con toda la información de tal persona (numero de móvil, nombre, dirección bluetooth, dirección Ip...) serializarlo y enviarlo al dispositivo móvil. Una vez recibido en el cliente, lo "des-serializamos" y obtenemos el mismo objeto original. Muy útil para envío de estructuras complejas entre dispositivos.

La serialización, por desgracia, no está implementada para J2ME, así que he tenido que hacer un arreglillo, siguiendo los pasos de este "Consejo".

He realizado las pruebas pertinentes, y he recibido correctamente el objeto. Esto abre nuevas puertas y nuevas ideas...

Un saludo y feliz año.

domingo, 30 de diciembre de 2007

El servidor responde

Como comentaba en el último post.

Una vez consultada la base de datos en el servidor (el portatil), este le responde al móvil la información requerida. En este caso la dirección bluetooth del dispositivo que estamos buscando.

Lo próximo será enviar un objeto completo con toda la información del usuario, usando "Serialización". El problema es que para J2ME no existe esta funcionalidad y habrá que implementar algo por el estilo.

Ya os contaré como va el tema.

domingo, 23 de diciembre de 2007

J2ME+Bluetooth+J2SE+MySql

Todo unido, casi a la perfección.

Sigo retocando un poco el código y mejorando el cliente, lo que tengo ahora mismo es una prueba, todavía no está implementado en el "JSend".

Veamos algunos pedazos de códigos interesantes.

En la parte del cliente (J2ME)

conn = (StreamConnection) Connector.open(connString);

donde "connString" es algo parecido a esto:

"btspp://0009DD506CE7:1" (Dirección del dispositivo bluetooth al que queremos conectarnos, y su canal (1).

una vez abierta la conexion creamos el objeto de salida:

output = conn.openOutputStream();

y enviamos los datos por el flujo de salida

byte[] datos = this.mensaje.getBytes();
output.write(datos);

En el servidor (J2SE):

Activamos el dispositivo bluetooth:

local = LocalDevice.getLocalDevice();
local.setDiscoverable(DiscoveryAgent.GIAC);

Creamos la dirección del "servidor" donde UUID_STRING es un número hexadecimal de 32 bits y NOMBRE_SERVICIO un nombre identificativo que queramos.

String url = "btspp://localhost:" + UUID_STRING + ";name="
+ NOMBRE_SERVICIO;

Abrimos la conexión y esperamos las "llamadas" entrantes.

server = (StreamConnectionNotifier) Connector.open(url);

StreamConnection conn = server.acceptAndOpen();

Abrimos el flujo de lectura

InputStream is = conn.openInputStream();

volcamos el buffer de lectura en una variable "buffer" de tipo byte... y a leer!!

int numChars = is.read(buffer);


Utilidad:

Desde el movil, enviamos al servidor el teléfono del amigo al que queramos enviarle el archivo/foto. El servidor lo recibe y busca en la base de datos (como comentaba en post más abajo) toda la información de ese número de teléfono.

Solo me queda la fase de "respuesta del servidor al móvil"...

En el siguiente capítulo más!!!!

jueves, 20 de diciembre de 2007

Conexión exitosa

Como ya os he ido comentando en mis anteriores post, mi intención era conectar Java con MySql.

La idea "ambiciosa" es:

Desde el móvil, consultar datos existentes en la base de datos del PC. A través del bluetooth, envío, por ejemplo el número de teléfono, y el ordenador me devuelve por ejemplo la dirección bluetooth (si existe) de ese móvil.

Ya tengo la parte del servidor, ya obtengo información de la base de datos. Ahora falta comunicar el movil con el PC y obtener respuesta del mismo.

lunes, 17 de diciembre de 2007

MySql Administrator

Después de instalar el MySql Administrator, el administrador de base de datos mysql (Como bien dice el nombre).

Una vez conseguida la conexión al servidor local y haber probado un par de tablas, me encuentro con el siguiente problema a la hora de alterar algunas tablas:

error Nr.1064


Buscando por internet he encontrado la solución. El programilla tiene un pequeño "bug", y es que en el caso que no introduzcamos la longitud del campo (varchar(20), por ejemplo) nos da ese pete...

Solución: Meterle un valor de longitud al campo en particular. Y solucionado!!!

MySql Server.

Bueno, he vuelto, después de varias semanas de desaparición proyectil, vuelvo a la carga.

Esta vez le estoy metiendo mano al servidor que irá alojado en mi portatil. La idea es crear una base de datos pequeña, con información sobre usuarios, sus teléfonos...y desde el móvil acceder a ella.

Por lo pronto estoy instalando en MySql en el cacharro este. (Recordemos que estamos en Linux)

Pasos que estoy siguiendo:

-Instalar los paquetes "myslq-server" y "mysql-client".

-Instalar un entorno "MySql Administrator", para una gestión de las tablas mucho más fácil e intuitiva.

-Configurar el netbeans para que me pille la base de datos y poder hacer pruebas.

Por lo pronto los pasos 1 y 2 ya están completos, voy a empezar a juguetear un poco con esto a ver si me encuentro algún problema...(espero que no).

Actualización:

Acabo de conectar el Netbeans con la base de datos:

El Netbeans 6.0 ya tiene incluido el driver de conexión con la BD, así que solo hay que seleccionar la dirección de la máquina a la que hay que conectarse (localhost:3306) el usuario y la contraseña...

Y ya tengo conexión.

Yeah!!

martes, 20 de noviembre de 2007

Fase 1 Completada-> Fase 2 Inicio

Después de 1 semana de inactividad, por culpa del Master, he vuelto a la carga...con excelentes resultados.

Hace 2 semanas, os contaba que iba a comenzar a usar FileSystem de J2ME, (API JSR75), ayer ya tenía casi completo el sistema de ficheros y hoy ya he puesto la guinda.

La siguiente fase, una vez obtenido el fichero, es el envío por...pongamos Bluetooth, así que la Fase 2, es:

Envío por Obex.

Ya tengo algunas cosas hechas, solo habrá que modificarlas y adaptarlas a mi código.

miércoles, 7 de noviembre de 2007

Sistema de Ficheros

Llevo trabajando unos cuantos días en el sistema de ficheros del programa.

Ya que voy a enviar un fichero desde el móvil, tendré que seleccionar el fichero, así que hay que crearse un sistema de carpetitas, raices y ficheritos para que la localización del documento en cuestión sea fácil.

Bautizado como JExplorer, es un pequeño "Explorador de ficheros" en el programa principal.

Lo próximo será obtener una direccion/teléfono de la agenda de contactos.

El móvil en sí, trae todas estas funcionalidades, pero recordad que quiero: obtener un fichero y acceder a la lista de contactos dentro de un programa. En cuanto tenga el sistema de ficheros os cuento como va la movida...

miércoles, 31 de octubre de 2007

JSendMe

Bueno, como ya he empezado a desarrollar la aplicación en sí, lo que es el interfaz, creación de diagramas de flujos, me he permitido el lujo de bautizarla.

En un principio pensé llamarla JSend, (J de Java y de Jose) pero ya hay una aplicación así por internet, que te permite enviar formularios a través de Javascript (Tendré que mirar como va eso).

La segunda versión es JSendMe, y me gusta mucho más, el "Me" tiene el doble sentido de "A mi" y de "MicroEdition"...muahaha

En la imagen está la primera pantalla de la aplicación en la versión 0.1, todavía no hay mucho más, pero poco a poco voy a haciendo el esqueleto del proyecto.

Divide y vencerás.

FileSystem

Una de las cosas que me abrumaba enormemente era:

Si tengo que obtener un fichero del móvil, desde el MIDlet, para enviarlo...¿Como lo saco? ¿Habrá alguna API que me permita manejar ficheros?

La respuesta es ¡¡si!!

La API se llama FileConnnection (JSR 75) y mediante ella, podremos ver las carpetas del móvil, los ficheros e interactuar con ellos...ya tengo lo necesario para crearme mi propio "explorador" en el móvil y empotrarlo en la aplicación...

En cuanto tenga más información, escribiré algo más por aquí. También he de deciros que hay una API para obtener los números de la agenda de contactos...yeah!!

lunes, 29 de octubre de 2007

Enlaces de interés

El "Nokia forum" es el lugar perfecto para encontrar maravillas como las siguientes:

Manual para usar conexiones bluetooth mediantes RFCOMM y OBEX

Manual para usar Sockets y Datagramas con J2ME

Son simplemente geniales. El primer documento es el que tengo ahora entre manos. Sublime, no se me ocurre otra palabra.

jueves, 25 de octubre de 2007

OBEX

Una vez asentadas las bases de una comunicación bluetooth y habiendo visto y jugado con RFCOMM y L2CAP, ya va siendo hora de meterse en algo más serio:

OBEX (OBjet EXChange)

Obex es un protocolo de comunicaciones que permite que datos/objetos sean transferidos entre dos dispositivos. Estos dispositivos ya pueden estar conectados físicamente o no.

Dominando este protocolo, podremos hacer intercambio de archivos por bluetooth e infrarrojos.

sábado, 20 de octubre de 2007

viernes, 19 de octubre de 2007

Comunicaciones I

Una de las grandes ventajas que tiene J2ME (ya que parece que todo son inconvenientes, siempre optimizando, y mirando por los recursos) es la capacidad que tiene para conectarse con "el mundo exterior".

Hay muchas formas de conectarse mediante un MIDlet, pero todas ellas derivan de la clase "Connector".

Mediante la clase Connector, podemos realizar cualquier tipo de conexión sin preocuparnos de como está implementado el protocolo necesario.

La conexión es tan simple como:

Connector.open("protocolo:direccion;parametros");

De esta forma podemos conectarnos vía http, por sockets, datagramas, SPP (Serial Port Profile), ya hablaré de ellos más adelante.

En mis ejemplos y pruebas de envío de mensajes de móvil a móvil y de móvil a PC, he usado los interfaces:

InputConnection,OutputConnection y StreamConnectionNotifier.


StingBuffer url = new StringBuffer("bspp://localhost:")
StreamConnection con = (StreamConnection) Connector.open(url);
OutputStream out = con.openOutputStream();
InputStream in = con.openInputStream();


La dirección "btspp://" ya que uso el mecanismo de conexión SPP, en el cual obtendremos un InputStream y un OutputStream. Mediante este método de conexión enviamos y recibimos streams.


Java a tope: J2ME

Siempre que leo este manual no puedo evitar acordarme del Videojuego de Vicentín: Siempre a tope 5.0 (de ahí, viene el "5.0" del nombre del blog).

Pero bueno, no iba a hablar de los Chanantes.

Los profesores Sergio Gálvez Rojas y Lucas Ortega Díaz de la universidad de Málaga han confeccionado este hermoso manual de J2ME para aquellos que quieran empezar a programar para móviles:

Java a tope: J2ME

Está muy interesante, aunque se queda algo corto para mí.

Todos aquellos que quieran más información sobre el tema, que contacten conmigo, tengo manuales y libros en pdf para dar y tomar.

sábado, 13 de octubre de 2007

Estructura de aplicación Cliente.

Una vez que haces un par de aplicaciones cliente, ya son casi todas iguales, pero en definitiva la estructura básica se resumen en:

->startApp()

Método indispensable del MIDlet, en el que se inicializan las variables, ponemos la pantalla que se van a mostrar a lo largo de la aplicación, creamos los comandos que vamos a usar en nuestra aplicación y (una cosa muy importante) inicializar el bluetooth local.

->pauseApp()

Bueno, en este método meteremos todo aquello que debe ocurrir en caso que el MIDlet pase a estado de "pausa" (si recibimos una llamada, el programa se pasará a estado "pausa")

->destroyApp()

Aquí, irán todas aquellas "rutinas" que deben ocurrir cuando el MIDlet se "destruye", en otras cuentas, cuando cerramos el programa.

Ahora viene el método que recoge los "Comandos".

Los comandos son eventos que ocurren cuando el usuario interacciona con el móvil. Supongamos que tenemos un menú, con 2 opciones, una de ellas es "buscar dispositivos bluetooth" la otra es "Salir", pues cuando pulsemos sobre "Buscar dispositivos bluetooth" se lanzará un evento que irá al método:

->commandAction()

"Acciones de los comandos", como comentaba arriba, en este método se recogen los eventos, y aquí ya hacemos lo que queramos con ellos. Continuando con el ejemplo anterior, si nos llega el evento que hemos creado para la opccion de "buscar dispositivos...", pues haremos una cosa, en caso que nos llegue el evento de "Salir" haremos otra.

Este método anterior es como...un "Switch", por lo menos yo lo veo así. Nos llegan eventos y dependiendo del evento que sea ya lo "enviamos" a otro lugar, a otra función para que haga cosas especificas.

Por aquí en medio crearía un método que se dedique a realizar la búsqueda de dispositivos, con un startInquiry(...) (Comienzo de búsqueda).

Cada vez que un dispositivo sea descubierto, este método se ejecutará automáticamente:

->deviceDiscovered(RemoteDevice remoteDevice, DeviceClass clase)

Aquí nos encargamos de hacer lo necesario con el dispositivo encontrado: guardarlo en un array, buscar sus servicios asociados, mostrar sus datos...todo lo que queramos.

->inquiryCompleted()

Cuando la búsqueda se ha realizado por completo, se ha parado por algún error o se ha cancelado, se llama a este método, aquí ya mostramos los mensajes correspondientes y realizamos las acciones que creamos convenientes.

->servicesDiscovered(int transID, ServiceRecord[] servRecord)

Método que se llama automáticamente cuando un servicio ha sido descubierto, los servicios se guardan y encapsulan en DataElements (sistema de encapsulamiento que todavía me cuesta majenar.

->serviceSearchCompleted

Una vez que se ha acabado la búsqueda de servicios, ya sea por cancelación del usuario, por fallo o simplemente que ha terminado, este método será llamado automáticamente.



Pues eso, esto es más o menos la estructura de una aplicación cliente, con sus variantes, claro...

martes, 9 de octubre de 2007

Cliente -> Servidor

Poco a poco voy cogiéndole la estructura a esto. Los últimos programas que estoy implementando (o intentándolo por lo menos) son del tipo.

Un "servidor" móvil, que ofrece unos servicios, un "cliente" que busca esos servicios para obtener "algo".

Servidor.

El programa "servidor" debe encargarse de ofrecer unos servicios "al mercado", los programas servidores suelen ser simples, especificas los atributos y los servicios encapsulandolos en un ServiceRecord (que todavía me cuesta visualizar), ejecutas un hilo y en un método "run", pones tu servidor en marcha.

El programa cliente es más complicado, debe realizar la búsqueda de dispositivos, contemplar todos los casos, y a continuación, buscar los servicios de dichos dispositivos.

Un ejemplo simple pero bastante intuitivo.

Tenemos un "servidor" que tiene funciones de impresión, está conectado a una red de impresoras y ofrece esos servicios.
Cada impresora tiene sus características, pueden ser b/n, a color... pues en la especificación de los servicios del servidor, creamos atributos específicos para cada impresora. Ofrecemos un servicio por cada impresora, y estos servicios están caracterizados por sus atributos (blanco y negro, color, calidad de impresión).

Nosotros, como clientes, hacemos una búsqueda de servicios en este servidor, y nos quedamos con lo que nos interesa. Si vamos a imprimir un documento, pues nos da igual que la impresora es b/n o color, pero si vamos a imprimir una imagen nos interesaría más seleccionar la impresora de color.


En definitiva, esto es lo que estoy haciendo últimamente, creando "servidores" que ofrezcan servicios. Me está costando trabajo, solo por el echo de no llegar a comprender del todo el encapsulamiento y el tratado de los "serviceRecord"...aunque poco a poco lo vaya entendiendo mejor.

martes, 2 de octubre de 2007

Descubrimiento de dispositivos bluetooth

Para descubrir un dispositivo Bluetooth en una aplicación java, se ha de usar la función, startInquiry() , este método requiere la especificación de un “Listener”, este Listener será notificado cuando se hayan encontrado dispositivos reales.

Si por el contrario ya tenemos conocimiento de la existencia de dispositivos en el entorno, y además tenemos dichos dispositivos almacenados como dispositivos “pre-known”, para no realizar un Inquiry o búsqueda usamos la función retrieveDevices(). Esta función devuelve la lista de dispositivos encontrados en una búsqueda anterior, o dispositivos almacenados como “conocidos”.


El método deviceDiscovered() debe ser implementado en un “Listener”, ya que cada vez que se encuentra un dispositivo en una búsqueda, se hace la llamada a este método, por eso, en la función startInquiry() es necesario la especificación de un Listener.

Cuando una búsqueda se ha completado o cancelado, el sistema hace una llamada a la función, InquiryCompleted().

Propiedades del dispositivo bluetooth

Cada dispositivo, dependiendo de la marca y del vendedor, necesita ser configurado de forma diferente. Para ellos usamos los parámetros del dispositivo.

La API JSR82 define que las propiedades del dispositivo pueden ser llamadas usando la función


LocalDevice.getProperty().


Estas propiedades dan información sobre el sistema Bluetooth, además de las posibles restricciones que tenga el dispositivo por su implementación.


Algunas propiedades:


bluetooth.api.version->Versión de la API del dispositivo.

bluetooth.connected.devices.max->Número máximo de dispositivos que pueden ser conectados

bluetooth.master.switch->¿Es posible la conmutación master/slave?

martes, 18 de septiembre de 2007

NetBeans 6.0 Versión Beta














La versión beta de mi querido Netbeans 6.0 ha salido ya!!!

Os la podéis bajar en:

Netbeans 6.0

y podéis ver las mejoras en:

Info de Netbeans 6.0

martes, 11 de septiembre de 2007

Bluetooth Stack

Estos últimos meses, he estado desarrollando en J2ME, usando mi querido Netbeans y el Wireless Tool Kit.

Este entorno emulaba las librerías de bluetooth que el dispositivo móvil posee ya de por sí, así que todo ha sido "fácil".

Ahora, estos días he querido implementar una aplicación J2SE en el portátil que te descubriese los dispositivos móviles, antes de ponerme a picar código, he querido probar un programita que he encontrado por Internet, que hacía eso mismo: te buscaba los dispositivos bluetooth que hay en el radio de alcance.

Ahora viene lo "difícil", ahora ya trabajo con un dispositivo bluetooth real (el pinganillo de mi portátil), y necesito una librería que me permita "comunicarme" con el pinganillo.

Durante estos 3 días, me he pateado mil y una páginas web sobre el tema. En todas ellas, me comentaban que necesitaba un "bluetooth Stack".

Primero intenté usar la que me ofrecía:

www.javabluetooth.org

De esta página puede sacar las clases y los .java que necesitaba para implementar el sistema, una vez compilado y obtenido el .jar, al añadir la librería al programa, me daba problemas de "inicialización de la pila". Buscando en Internet un poco más, encontré esta API dependía del javax.comm. (API de java que te permite acceder a los puertos hardware del sistema). Varios intentos fallidos de compilar correctamente este API, me dí por vencido y busqué otra alternativa.

En Avetana, aquí me bajé una API ya compilada (un .jar) que solo tuve que añadir al proyecto Netbeans, mi felicidad no era del todo completa, ya que la licencia de este API era de 14 días. Pero bueno, vamos a probarlo. Anoche, eran casi las 2 de la mañana, cuando conseguí que el sistema me descubriese el móvil.

Esta mañana, escribí un correo a los alemanes que llevan la página de aventa, comentándoles si había algún tipo de licencia no comercial para linux, que fuese gratuita e indefinida. A los 10 minutos recibo respuesta del señor Moritz Gmelin, me comenta que para linux la licencia está en GPL (General Public License)...Pero como se me ha podido pasar!!!Buscando más en la página la encuentro! La muy mamona estaba bien escondida:

API bluetooth de Avetana

No estaba compilado, sin problema, lo compilamos, lo añadimos al proyecto...y vualá!!!
A la izquiera, el pequeño programita que busca el dispositivo bluetooth (Jbeer), y a la derecha comprobando que el sistema hace "ping" con el movil.

¿Os he dicho que amo linux?

Especificaciones

Después de la reunión con Lorenzo, ya tengo claro cuales van a ser las especificaciones básicas del proyecto. Ahí van:

El objeto del proyecto es usar todos los tipos de conectividades que existen actualmente en la tecnología móvil, para enviar un sms, archivo, foto, canción a otro dispositivo, ya sea otro móvil o a una dirección de correo.

El sistema debe barajar las posibilidades que le brinda los dispositivos del entorno y elegir la menos costosa para el usuario.

El dispositivo debe:

-Poder comunicarse por bluetooth con otro dispositivo móvil para hacer el envío directo, o comunicarse con un sistema conectado a la red (en este caso mi portátil) para que este, haga lo conveniente con el "mensaje".

-poder comunicarse por infrarrojos, ya sea con el portatil o con otro dispositivo móvil

-Poder enviar el mensaje por GPRS en caso que no haya ningún dispositivo bluetooth cercano conectado a la red

-En caso que el dispositivo tenga WIFI, que use este sistema para enviar el mensaje al destinatario.

Se hará la programación en J2ME, para el dispositivo móvil, J2SE para el portátil y se plantea la posibilidad de crear un servidor apache y mediante servlets procesar la información recibida.

domingo, 26 de agosto de 2007

Crear MIDLETS gráficamente.



















Mediante esta "herramienta" que nos proporciona Netbeans, podemos crear un MIDLET de forma gráfica, simplemente añadiendo elementos a la pantalla. Es como montar un puzzle. Esto es lo "fácil", lo más dificil es programarlo a pelo, por eso creo que es mejor, aprender a "hierro" sin tontás como estás, para que no nos acostumbremos a lo fácil.

Lo interesante de este sistema, es que a la vez que vamos añadiendo elementos, se va creando el código fuente él solo. Puedes ver como se van añadiendo clases, como se inicializan y como interactuan entre ellas.

En el ejemplo de arriba, he creado un "SplashScreen"...que en español sería como una..umm.."pantalla de comienzo de aplicación" (joder, por mucho porculo que me dé Paco con eso de usar "términos españoles", prefiero quedarme con el "SplashScreen" que es corto y conciso).

Todos que tengáis móvil con Java y habéis jugado a alguno de los juegos que trae, habréis visto que antes de cada juego, aparece una pantallita, con unos dibujillos y el nombre del juego...y algo así como "Cargando" o "Loading"...esa pantalla es la "SplashScreen"...

miércoles, 22 de agosto de 2007

Conexión con "Barrapunto.com"

Como obtener noticias en tu móvil, a partir de una página web.
















Bueno, no voy a poner el programa entero, pero si algunas partes del código que son interesantes.

String url = "http://backends.barrapunto.com/barrapunto.xml";

Creamos una variable "url" de tipo "String" (cadena de texto) que contenga la dirección de la página a consultar. La forma de obtener las noticias es mediante XML. Los archivos XML son como "bibliotecas" de datos muy bien definidos y etiquetados

Ejemplo de XML


Tenemos la etiqueta "story" que es la que engloba la notica, luego dentro de ella, tenemos varias etiquetas, como por ejemplo "title" que es el título de la noticia o "author" que es el autor de la noticia. Este archivo se encuentra en la Web, y nosotros nos encargaremos de tratarlo y obtener la información que necesitemos.

A ver, seguimos...

HttpConnection c = null;

Creamos un objeto HttpConnection "c" que nos creará la conexión con la página

c = (HttpConnection)Connector.open(url);

Con el Connector, abrimos la url que arriba habíamos definido

while ((ch = is.read()) != -1) {
b.append((char) ch);
if (ch == '\n') {
if (b.toString().indexOf("") > 0) {
i = b.toString().indexOf("")+7;
j = b.toString().indexOf("
");
salida.append(b.toString().substring(i,j));
salida.append("\n-------------------\n");
}
b.delete(0,b.length());
}
}


Y tratamos las etiquetas (en este caso, los "titles" solo) para mostrarlas en el móvil.

Bueno, esto ha sido una especie de clase rápida y algo mala...si tenéis alguna duda, consultadmelo, que aunque no me haya explicado bien, está en mi cabecita.

sábado, 11 de agosto de 2007

Prueba exitosa

Ayer tarde, pedí a Manolo, novio de mi prima, que me probase en su movil Nokia la aplicación de bluetooth.

Resultados:

-Por Wap, le daba el mismo problema que a mí.

-Si se pasaba los archivos del ordenador al movil, los podía instalar sin poblemas. Además funcionaba.

Conclusión:

El problema está en la descarga desde internet :S

lunes, 6 de agosto de 2007

Certificar los MIDlets

He estado leyendo sobre el tema. ¿es posible que no pueda instalar la aplicación en mi móvil porqué no está autentificada?

¿Que es la certificación?

Siendo algo bruto sería algo así.

Un señor (El señor movil), quiere comprarse una nueva pijada para su caja (en la analogía con el movil, sería una aplicación). Llamo al teletienda, o como se llame (un servidor internet), le digo que quiero la Pijada numero 1. Pero...¿como sé que es la pijada auténtica y no un timo? Tendré que asegurarme (En nuestro caso, el dispositivo móvil tendrá que certificar que la aplicación es auténtica...)...Una vez, que certificamos que es autentica, la pido y me la mandan por correo (GPRS)

Problema...¿Como coño certifico mis aplicaciones? Voy a tener que pagar por un certificado???

Y todo esto son suposiciones

Wireless Toolkit 2.5.1

Deseché este programa al comienzo de todo por que me parecía "simple"...

"El Netbeans tiene más cosas y es mejor..."

Ejem, me retracto de mis palabras. Acabo de ver el cielo con este programita.

¿Por qué lo deseché hace unos meses?

En los cursos de Java, nos enseñaron a usar este programa, programábamos los arhivos .java y .class en el block de notas (que curtrez!!, pensé), luego, se creaba un proyecto en el WT y se agregaban estos archivos creados. Se puede decir que WT no es un programa para desarrollar Java, si no para probarlo....

y cuando he leído este artículo me he echado las manos a la cabeza!!

Todo lo que necesito está aquí!!Emulador de bluetooh, de infrarrojos y acceso a http...

BRUTAL!!!

Además! mi programita para encontrar dispositivos bluetooth funciona!!!!!!!!!!

miércoles, 1 de agosto de 2007

Buscador de dispositivos bluetooth

Acabo de crear, medio copy-paste, un programa que busca dispositivos bluetooth y te los muestra en una lista.

Un Midlet "Principal" con 2 clases asociadas "Dispositivo" y "Servicio".

En el midlet, creo un menú de opciones, desde el cual se pueden hacer diferentes cosas:














-Buscar dispositivos
-Buscar sevicios

El buscador de servicios no lo tengo realmente muy implementado, me he centrado en el buscador de dispositivos. En el emulador no aparece nada, estoy intentandolo bajármelo de la web por WAP, pero hay algo que falla...Quizás sea mi movil el que falla...
¿Algún voluntario para ayudarme?

lunes, 30 de julio de 2007

Gestor Wap

Una de las putadillas de programar para móviles con bluetooth es que, o tengo un buen emulador de bluetooth en el portátil o hago las pruebas en el móvil.

Como mi puto móvil está capado, y no puedo pasarle aplicaciones por la red, tendré que bajármelas desde internet, usando algún servidor donde almacenar mis programitas.

He encontrado un par de sitios, que podrían ser interesantes pero no me sirven.

File2mobile ->Este sitio parece genial, pero a la hora de bajarme el programa desde el móvil me da problemas en la página...como si no la encontrase

Mobicious-> Este estaría mejor, si además de fotos y videos se pudiesen subir aplicaciones...en definitiva, que no me sirve

Sigo buscando una página que me permita hacer lo que necesito:

Pasos a seguir:

-Desarrollar el programa

-Subirlo a un servidor web

-Desde el móvil, acceder al sitio del servidor y descargarme el programa

-Ejecutar el programa desde el móvil.

Esto con mi antiguo Nokia 3200 no pasaba...el próximo movil que va a caer en mis manos será un Nokia...cuando cumpla el año de contrato con Vodafone.

Resumen

Voy a intentar hacer un resumen de lo acontecido en estos últimos meses, no me puedo parar en cada cosa, ya que es bastante extenso, pero a partir de ahora prometo hacer incapié en cosas interesantes sobre este tema.

Instalación de Netbeans 5.5 y Mobility Pack en Linux

Comienzo y acabado de cursos J2ME (Básico y Avanzado)

Primeros programas...

El el último capítulo, empezaba a usar las librerías bluetooth.

Si alguien quiere que me explaye en un tema en particular solo hay que comentarmelo. :)

Empezamos!

Mes de marzo.

Entrevista con "Tardón", mi tutor del proyecto.

Un proyecto en j2me, que interactuará con "algo" mediante bluetooth, infrarrojos o GPRS...

Mes de Julio.

Programando en J2ME

COMENZAMOS!!!!