Guía de desarrollo
Local Navigation
- Descripción general de los servicios basados en ubicación
- Encontrar una ubicación
- Activar y poner en cola los Servicios de ubicación en el dispositivo
- Recuperar una ubicación mediante GPS
- Especificar el modo GPS
- Especificar el modo GPS utilizando JSR 179
- Especificar el modo GPS utilizando las extensiones de BlackBerry para JSR 179
- Recuperar la información de la ubicación utilizando el modo GPS asistido
-
Recuperar un proveedor de ubicación
- Recuperar un proveedor de ubicación utilizando la clase LocationProvider
- Controlar el rastreo de ubicaciones utilizando la clase BlackBerryLocationProvider
- Controlar el rastreo de ubicaciones utilizando la clase BlackBerryLocationProvider
- Ejemplo de código: Utilizar la clase BlackBerryLocationProvider para controlar el rastreo de ubicaciones
- Recuperar un proveedor de ubicación utilizando la clase BlackBerryLocationProvider
-
Recuperar la ubicación de un dispositivo BlackBerry
- Recuperar la ubicación de un dispositivo BlackBerry
- Ejemplo de código: Recuperar la ubicación GPS de un dispositivo BlackBerry
- Recuperar la ubicación de un dispositivo BlackBerry especificando solicitudes continuas del punto de posición
- Ejemplo de código: Recuperar la ubicación GPS de un dispositivo BlackBerry utilizando solicitudes continuas del punto de posición
- Recuperar la información de la ubicación utilizando la clase Location
- Recuperar información de la ubicación utilizando la clase Location
- Ejemplo de código: Utilizar la clase Location para recuperar información de la ubicación GPS
- Recuperar la información de ubicación utilizando la clase BlackBerryLocation
- Recuperar información del satélite utilizando la clase BlackBerryLocation
- Ejemplo de código: Utilizar la clase BlackBerryLocation para recuperar información del satélite
- Cambiar los criterios para recibir información de ubicación
- Ejemplo de código: Modificar los criterios para recuperar información de ubicación
- Gestionar errores
- Recuperar una ubicación GPS utilizando una página Web
- Recuperar una ubicación mediante la geoubicación
- Recuperar la posición óptima con GPS y geoubicación
- Solicitar actualizaciones simultáneas de geoubicación y GPS
- Codificación geográfica y codificación geográfica inversa
- Recibir alertas de proximidad mediante límites geográficos
- Determinar la dirección o el rumbo
- Recuperar el tiempo estimado del viaje, la distancia y la hora de salida
- Visualizar una ubicación mediante mapas
- Personalizar la apariencia de un mapa
- Integrar con BlackBerry Maps
- Obtener más información
- Glosario
- Comentarios
- Aviso legal
Documentación de producto
>
Documentación del desarrollador
>
Guías de desarrollo de Java y referencia de API
>
Guía de desarrollo
Location-Based Services - BlackBerry Java SDK - 7.0
Recuperar la ubicación de un dispositivo mediante el servicio de geoubicación
Los siguientes pasos muestran cómo crear una aplicación de interfaz de usuario que proporcione la ubicación del dispositivo BlackBerry mediante el servicio de geoubicación.
Antes de comenzar: Compruebe que el dispositivo BlackBerry o que BlackBerry Smartphone Simulator pueden acceder al servicio de geoubicación.
- Importe las clases y las interfaces necesarias.
import net.rim.device.api.gps.*; import net.rim.device.api.system.Application; import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import javax.microedition.location.*;
- Cree el marco de la aplicación ampliando la clase UiApplication. En main(), cree una instancia de la clase nueva e invoque enterEventDispatcher() para activar la aplicación para recibir eventos. En el constructor de la aplicación, invoque pushScreen() para mostrar la pantalla personalizada para la aplicación. La clase GeolocationScreen que se describe en el paso 3, representa la pantalla personalizada.
public final class GeolocationDemo extends UiApplication { public static void main(String[] args) { GeolocationDemo theApp = new GeolocationDemo(); theApp.enterEventDispatcher(); } public GeolocationDemo() { pushScreen(new GeolocationScreen()); } } - Cree el marco de la pantalla personalizada ampliando la clase MainScreen. Cree una instancia de la clase LabelField para almacenar las coordenadas que se muestran en la pantalla. Cree dos variables double para almacenar los valores de latitud y longitud.
class GeolocationScreen extends MainScreen { private LabelField _coordLabel; private double _latitude; private double _longitude; } - En el constructor de pantalla, invoque super() para crear un menú predeterminado. Invoque setTitle() para especificar el título de la pantalla.
public GeolocationScreen() { super(DEFAULT_CLOSE | DEFAULT_MENU); setTitle(new LabelField("Geolocation Demo", Field.USE_ALL_WIDTH | DrawStyle.HCENTER)); } - En el constructor de pantalla, cree una instancia de la clase ButtonField para crear un botón en el cual el usuario del dispositivo BlackBerry hará clic para recuperar la geoubicación del dispositivo. Invoque Field.setChangeListener() para escuchar los cambios en el botón. Invoque findGeolocation(), que se describe en el paso 6, para recuperar la geoubicación cuando el usuario haga clic en el botón. Invoque add() para agregar el botón a la pantalla. Cree una instancia de la clase LabelField para mostrar las coordenadas resultantes e invoque add() para agregar el campo a la pantalla.
ButtonField geolocButton = new ButtonField("Get geolocation", ButtonField.CONSUME_CLICK); geolocButton.setChangeListener(new FieldChangeListener() { public void fieldChanged(Field field, int context) { findGeolocation(); } }); add(geolocButton); this._coordLabel = new LabelField(); add(this._coordLabel); - Cree el marco para el método findGeolocation. Invoque setText() con un valor String vacío para borrar LabelField para las coordenadas. Cree una instancia de la clase Thread que invoque run(). Este subproceso se utiliza para procesar la recuperación de la información de geoubicación. En run(), cree un bloque try/catch para especificar el modo de geoubicación. Cree una instancia de la clase BlackBerryCriteria invocando BlackBerryCriteria() y pasando LocationInfo.GEOLOCATION_MODE como el modo de recuperar la información de geoubicación. En el bloque catch, invoque showException(), que se describe en el paso 10, para mostrar el mensaje de error para una UnsupportedOperationException.
private void findGeolocation() { this._coordLabel.setText(""); Thread geolocThread = new Thread() { public void run() { try { BlackBerryCriteria myCriteria = new BlackBerryCriteria( LocationInfo.GEOLOCATION_MODE); } catch (UnsupportedOperationException e) { showException(e); } } }; geolocThread.start(); } - En el primer bloque try, cree un segundo bloque try/catch para recuperar un proveedor de ubicación. Invoque LocationProvider.getInstance() con el objeto BlackBerryCriteria para recuperar un proveedor de ubicación. En el bloque catch, invoque showException(), que se describe en el paso 10, para mostrar el mensaje de error para una LocationException.
try { BlackBerryLocationProvider myProvider = (BlackBerryLocationProvider) LocationProvider.getInstance(myCriteria); } catch (LocationException e) { showException(e); } - En el segundo bloque try, cree un tercer bloque try/catch para recuperar la información de ubicación. Invoque BlackBerryLocationProvider.getLocation() con un parámetro de -1 para recuperar un proveedor de ubicación mediante el valor predeterminado de tiempo de espera. Invoque getLongitude() y getLatitude() para recuperar las coordenadas de longitud y latitud respectivamente. Cree una instancia de la clase StringBuffer y anexe las coordenadas resultantes al búfer. Cree una variable String e invoque toString() con el objeto StringBuffer para devolver el valor String para las coordenadas. Invoque showResults() para mostrar los resultados en la pantalla, esto se describe en el paso 9. En el primer bloque catch, invoque showException(), que se describe en el paso 10, para mostrar el mensaje de error para una InterruptedException. En el segundo bloque catch, invoque showException(), que se describe en el paso 10, para mostrar el mensaje de error para una LocationException.
try { BlackBerryLocation myLocation =(BlackBerryLocation)myProvider .getLocation(-1); _longitude = myLocation.getQualifiedCoordinates().getLongitude(); _latitude = myLocation.getQualifiedCoordinates().getLatitude(); StringBuffer sb = new StringBuffer(); sb.append("Longitude: "); sb.append(_longitude); sb.append("\n"); sb.append("Latitude: "); sb.append(_latitude); String msg = sb.toString(); showResults(msg); } catch (InterruptedException e) { showException(e); } catch (LocationException e) { showException(e); } - En el método showResults, invoque invokeLater() para agregar esta sección de código a la cola de eventos de la aplicación. Cree una instancia de la clase Runnable y pásela como parámetro a invokeLater(). Omita run() en la definición de Runnable. Invoque setText() con la variable String para especificar las coordenadas resultantes para el LabelField.
private void showResults(final String msg) { Application.getApplication().invokeLater(new Runnable() { public void run() { GeolocationScreen.this._coordLabel.setText(msg); } }); } - En el método showException, invoque invokeLater() para agregar esta sección de código a la cola de eventos de la aplicación. Cree una instancia de Runnable y pásela como parámetro a invokeLater(). Omita run() en la definición de Runnable. Invoque Dialog.alert() para crear un cuadro de diálogo de alerta y pasar el mensaje de error invocando getMessage().
private void showException(final Exception e) { Application.getApplication().invokeLater(new Runnable() { public void run() { Dialog.alert(e.getMessage()); } }); }
Tema siguiente: Ejemplo de código: recuperar la ubicación de un dispositivo mediante el servicio de geoubicación
¿Le ha resultado útil esta información? Envíenos sus comentarios.