Our Country Sites: Argentina|Brazil|Chile|Mexico|Peru

AGPS en celulares Iden de Motorola

Versión para impresiónVersión para impresiónSend by emailSend by email

El presente artículo trata de explicar de una forma medianamente rápida como trabaja la implementación AGPS en los celulares IDEN de Motorola; para esto se explicará ciertos conceptos necesarios para poder entender cómo usar las librerías de Posición, paquetes básicos y un ejemplo simple de cómo se usa está tecnología.

API de Locación
Diferentes modelos de teléfonos IDEN permiten a los usuarios acceder a la información de posición GPS como latitud, longitud, velocidad, etc. Esta característica es provista como una aplicación integrada en los teléfonos ergonómicos estándar y como una API o interfaz J2ME que los desarrolladores pueden usar para crear aplicaciones de localización de coordenadas con asistencia(AGPS) a medida.

Precisión
El teléfono está diseñado para recibir fixes de localización dentro de un nivel de precisión geográfica determinada por el proveedor de red de comunicaciones. Usando el API J2ME de posición los desarrolladores pueden recuperar un fix; sin embargo, el valor de localización no está garantizado a estar dentro de este nivel de precisión. El API provee ciertos métodos para determinar si un fix obtenido es preciso o no.

Motorola se esfuerza en alcanzar la máxima precisión posible; sin embargo, ningún sistema GPS puede proveer precisión perfecta en todas las situaciones. La precisión GPS puede ser afectada por una multitud de potenciales factores de error, incluyendo condiciones de señal de satélite GPS y disponibilidad de packet Data. La precisión en la posición no está garantizada tampoco implícitamente.

Información Asistida
AGPS usa información de asistencia celular para recuperar el fix de localización. El API de posición provee a las desarrolladores con un método para determinar si la información de asistencia celular es usada por un fix data.

PAQUETES J2ME PARA LOCALIZACIÓN

Básicos
- import javax.microedition.io.*;
- import java.io.*;
- import javax.microedition.midlet.*;
- import javax.microedition.lcdui.*;
- import java.lang.System;
- import java.util.*;

Localización AGPS
- import com.motorola.iden.position.*;

Esta API de provee funcionalidades de localización requeridas para aplicaciones Java para accede a la información GPS de localización siguientes:
• Latitude
• Longitude
• Altitude
• Time Stamp
• Travel Direction
• Speed
• Altitude Uncertainty
• Speed Uncertainty

LA CLASE “PositionConnection”
Esta interface soporta la creación de una conexión a un GPS receptor (Driver). La posición GPS puede ser recibida y el estado puede ser obtenido después de la creación de una conexión. Solo una conexión es permitida a la vez. Esta API deber ser llamada desde un hilo separado del hilo principal de la aplicación.

Para obtener un PositionConnection, el Midlet debe usar la clase genérica Conector. Por ejemplo:

com.motorola.iden.PositionConnection sc = (com.motorola.iden.PositionConnection)Connector.open(String name);

El tipo String nombre deber ser uno de los siguientes:
• nombre = “mposition:delay=no”
• nombre = ”mposition:delay=low”
• nombre = ”mposition:delay=high”

TIPOS DE RETARDO DE LOCALIZACIÓN

- Delay=no, Provee la latitud y longitud de la celda a la aplicación inmediatamente esta es solicitada. Esta solicitud no usa el chip GPS, y si el celular esta fuera de la cobertura de red, los datos de latitud y longitud de celda serán 0.

- Delay=low, Provee una respuesta a la aplicación en pocos segundos. La información de asistencia es recuperada solo si no existe o si la información de asistencia ya expiro de acuerdo al valor MADA (Maximun Asist Data Age). Esta opción está diseñada para proveer todos los atributos de posición con asistencia del servidor LES (Location Enhanced Service). Para poder proveer de esta información el equipo necesita el servicio de Packet Data. Si la solicitud es realizada fuera de la cobertura de la red de comunicaciones, entonces el API no obtendrá información de asistencia del LES.

- Delay=high, Provee una respuesta a la aplicación donde el retardo es mucho más largo que la configuración anterior. Esta configuración trabaja con un fix autónomo o asistido para la aplicación. El celular usa solamente información de asistencia solo si está disponible o es válido; de lo contrario, el fix de localización procedería autónomamente.

Solo una petición de getPosition() puede ser realizada o estar pendiente en un mismo instante. Si la aplicación hace múltiples peticiones sin llegar a obtener una respuesta de una petición previa, un valor nulo es devuelto o una excepción es lanzada.

EJEMPLO PRÁCTICO

Lo que se busca en el ejemplo, a través de la aplicación que desarrollaremos, será la obtención de la latitud y longitud de a través del API de localización AGPS de acuerdo a un tipo de precisión seleccionada. Para esto la aplicación mostrará en resumen lo siguiente:

- Una pantalla para seleccionar la precisión de localización(Item ChoiceGroup)
- En la misma pantalla botón para lanzar la solicitud de localización
- Otra pantalla para ver los resultados obtenidos de Latitud y Longitud(StringItem)
- En la misma pantalla un botón para actualizar las posiciones en la misma pantalla

Herramientas usadas

- Netbeans IDE 6.1 - http://netbeans.org/downloads/index.html
- Motorola IDEN SDK - http://developer.motorola.com/docstools/sdks/

Para crear rápidamente las pantallas se usará el diseñador visual de la herramienta Netbeans que por defecto al generar un nuevo proyecto se crear una estructura de inicio.

Por favor ayuda

Necesito saber porque me lanza este error FIX_NOT_ATTAINABLE_ASSIST_DATA_UNAVAILABLE cuando intento con la segunda opcion del ejemplo colocado en el blog de nextel ( Conectividad GPS ) delay = low

error FIX_NOT_ATTAINABLE_ASSIST_DATA_UNAVAILABLE

Hola Wijucacu,
Este error te indica 2 cosas. La primera es que no pudo obtener localización GPS. La segunda cosa representada por “ASSIST_DATA_UNAVAILABLE” es que intento utilizar asistencia (estas usando delay=low), y no recibió la información de asistencia antes del timeout de 30 segundos.

Esto normalmente es causado por problema de plan de datos. Necesitas hablar con un representante de Nextel para asegurar que tu plan permite acceso al internet no solo el browser.

wijucacu

Muchas gracias amigo, pero en mi equipo que estoy probando tambien tengo una aplicacion instalada desarrollada por nextel (es un sistema de pre-venta )y funciona normal. Es por eso que queria saber porque me vota ese error si tengo acceso a internet y plan de datos.

Hola wijucacu

Por favor envíanos la parte del código j2me donde intentas hacer la captura de posicionamiento, quizás pueda encontrar la línea de código que está dando problemas.