Establecimiento de conexiones HTTP desde un MIDLET

0
20946

Establecimiento de Conexiones HTTP desde un MIDLET

Introducción

El motivo de este tutorial es echar una mano a los muchos
desarrolladores de MIDLETS que veo que tienen todos el mismo poblema y
que nadie da la solución que de verdad funcione en
ningún
sitio. (Investigé por foros de habla inglesa y
española)

El problema es el siguiente:

Cuando hacemos un MIDLET (Una
aplicación J2ME o lo
que es lo mismo una aplicación Java para móviles)
que
requiere conectarse a Internet para enviar/recibir datos, esta se
bloquea sin motivo aparente y no funciona.

En estos foros se dicen entre otras cosas, que un MIDLET no
puede
conectarse a Internet si no está firmado, o que los
proveedores
capan el puerto 80 y por eso no funciona.. pues bien, yo
cambié
de puerto y seguía sin funcionar y firmé el
MIDLET y
también seguía sin funcionar… así
que
después de desesperarme seguí investigando y
haciendo
todo tipo de pruebas hasta que di con la solución (Y no fue
facil, creerme.. por lo menos 100 horas y mucho dinero gastado en
pruebas).

A continuación os cuento como solucionar el
problema y luego
escribimos un MIDLET sencillito para que lo proveis si lo deseais. 🙂

Para que la conexión HTTP desde un MIDLET funcione
(suponiendo que está bien programado, claro) simplemente se
deben hacer dos cosas:

a) Tener bien configurado el teléfono para que se
conecte a
Internet por GRPS o cualquier otra tecnología más
moderna. (Navegar por WAP correctamente no significa que
esté
bien configurado el teléfono para conectarse a Internet
desde
las aplicaciones). Para configurar nuestro teléfono o PDA
podemos ir a la página de nuestro proveedor de acceso, pues
suelen tener páginas en donde metes tu número de
móvil y gratuitamente te envian un SMS de
configuración
que lo hace todo automáticamente. (También
podemos llamar
por teléfono o mirar los datos de configuración
por los
foros)

b) En nuestro teléfono, navegando por los
menúes,
debemos buscar la opción Perfiles de conexión o
Perfiles
WAP (cada modelo de teléfono tiene sus menúes
propios por
lo que es inviable dar más detalles) y cuando lo encontremos
debemos seleccionar como predeterminado
una conexión que se llama Internet o si no apareciera, una
conexión que se llama «Java Session».

Fácil
¿¿¿¿ verdad?????..

 

Vamos a ver un Ejemplo

El ejemplo que vamos a hacer es un simple MIDLET que se
conecta a
una URL por HTTP (Osea debería de funcionar en cualquier
móvil Java, pues la versión más
antigua de J2ME ya
da soporte para este protocolo). En esta URL escucha un Script PHP que
envia dos cosas:

a) Una cabecera personalizada. (Para ver que el MIDLET es
capaz de leer cabeceras no estándars)

b) Una frasecita. (Para ver que efectivamente el MIDLET lee lo
que el PHP nos envia)

El MIDLET simplemente muestra en pantalla un mensaje diciendo
que se
va a conectar a Internet para probar que el dispositivo efectivamente
puede conectarse y un botón que al pulsarlo inicia la prueba.

——————————————

El Script PHP se llamará prueba.php y tendra el siguiente código:

Ahora vamos con el MIDLET. Este constará de dos clases.

PhoneTest.java

Esta clase es el punto de arranque del MIDLET, es decir como
el main de una aplicación clásica de escritorio.

El siguiente script (PhoneTestForm.java) es el que recibe los datos que se envian desde el formulario. Es autocomentado.

A continuación configuramos los MIME-TYPES del
servidor para
que envie las cabeceras correctas al dispositivo (Se lo teneis que dar
todo perfecto.. la mayoría sobre todo los modelos
más
antiguos lo requieren)

Mime Type: text/vnd.sun.j2me.app-descriptor para la extensión .jad 
Mime Type: application/java-archive para la extensión .jar
Mime Type: application/xhtml+xml para la extensión .xhtml

Ahora creamos la página Web para que navegando a
dicha página desde nuestro teléfono (http://DireccionATuServidor/pt.xhtml)
se descarge e instale la aplicación en nuestro dispositivo
(protocolo OTA). ¡¡ Importante !!. Para navegar por
Internet desde el explorador de nuestro teléfono, debemos
tener
activada como predeterminada el perfil en cuyo nombre aparezca la
palabra WAP. (Para no hacer publicidad, debeis buscar el perfil
PepitoWAP, JuanitoWAP o algo asi 😉 )

Suponemos que la aplicación a sido compilada y
empaquetada
con los nombres pt.jar y pt.jar (Conviene ofuscarla y optimizarla con
Progrard u otros para que pese menos Kb)

Conclusiones

Para concluir decios que si os adentráis en el
mundo de los
MIDLETs, realicéis pruebas con teléfonos reales
pues en
los emuladores todo funciona siempre correctamente pero luego uno se
lleva sorpresas desagradables cuando los prueba en teléfonos
reales. (Scrolls raros, visualización de caracteres
erróneos, botones descolocados, etc.)

——

Bueno, espero que os haya sido de utilidad este tutorial.

En Autentia,
empresa en la cual
trabajo, nos gusta compartir el conocimiento. Aquí teneis un
poquito más de nuestra aportación. Si
algún
día necesitais un poco de ayuda con vuestros proyectos o
necesitais de formación ya sabeis donde encontrarnos.

Muchas gracias por visitar Adictos al Trabajo

Saludos. Carlos García. Creador de MobileTest.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad