Guide de développement
Local Navigation
- Présentation des services géodépendants
- Recherche d'une position
- Activation et interrogation des services de localisation sur le terminal
- Récupération d'une position avec le GPS
- Spécification du mode GPS
- Spécification du mode GPS à l'aide de JSR 179
- Spécification du mode GPS à l'aide d'extensions BlackBerry JSR 179
- Récupération d'informations de positionnement à l'aide du mode GPS assisté
-
Récupération d'un fournisseur de positionnement
- Récupérer un fournisseur de positionnement à l'aide de la classe LocationProvider
- Contrôle de la localisation à l'aide de la classe BlackBerryLocationProvider
- Contrôler la localisation à l'aide de la classe BlackBerryLocationProvider
- Échantillon de code : utilisation de la classe BlackBerryLocationProvider pour contrôler la localisation
- Récupérer un fournisseur de positionnement à l'aide de la classe BlackBerryLocationProvider
-
Récupération de la position d'un terminal BlackBerry
- Récupérer la position d'un terminal BlackBerry
- Échantillon de code : récupération de la position GPS d'un terminal BlackBerry
- Récupérer la position d'un terminal BlackBerry en spécifiant des demandes de position continues
- Échantillon de code : récupération de la position GPS d'un terminal BlackBerry à l'aide de demandes de position continues
- Récupération d'informations de positionnement à l'aide de la classe Location
- Récupérer des informations de positionnement à l'aide de la classe Location
- Échantillon de code : utilisation de la classe Location pour récupérer des informations de positionnement GPS
- Récupération d'informations de positionnement à l'aide de la classe BlackBerryLocation
- Récupérer des informations de satellite à l'aide de la classe BlackBerryLocation
- Échantillon de code : utilisation de la classe BlackBerryLocation pour récupérer des informations de satellite
- Modifier les critères pour recevoir des informations de positionnement
- Échantillon de code : modification des critères de récupération des informations de positionnement
- Traitement des erreurs
- Récupérer une position GPS à l'aide d'une page Web
- Récupération d'une position par géolocalisation
- Récupération de la position GPS optimale par GPS et géolocalisation
- Demande de mise à jour simultanée via GPS et la géolocalisation
- Géocodage et géocodage inversé
- Réception d'alertes de proximité par geofencing
- Identification de l'itinéraire ou de l'orientation
- Obtention du temps de trajet, de la distance et de l'heure de départ estimés
- Visualisation d'une position à l'aide de cartes
- Personnalisation de l'aspect d'une carte
- Intégration à BlackBerry Maps
- Pour plus d'informations
- Glossaire
- Envoi de commentaires
- Informations juridiques
Documentation produit
>
Documentation pour les développeurs
>
Guides de développement et référence API pour Java
>
Guide de développement
Location-Based Services - BlackBerry Java SDK - 7.0
Récupérer une seule position GPS optimale
Les étapes suivantes indiquent comment créer une application d'interface utilisateur fournissant la position GPS la plus rapidement disponible, qui peut être issue d'une source de géolocalisation ou d'une position GPS. Les coordonnées de la position et le mode utilisé par l'application pour récupérer la position s'affichent à l'écran.
Avant de commencer : vérifiez que le terminal BlackBerry ou que BlackBerry Smartphone Simulator peut accéder au service de géolocalisation.
- Importez les classes et les interfaces requises.
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.*;
- Créez le cadre d'application en développant la classe UiApplication. Dans main(), créez une instance de la nouvelle classe et appelez enterEventDispatcher() pour activer l'application et recevoir des événements. Dans le constructeur d'application, appelez pushScreen() pour afficher l'écran personnalisé de l'application. La classe SingleFixScreen, décrite à l'étape 3, représente l'écran personnalisé.
public final class SingleFixDemo extends UiApplication { public static void main(String[] args) { SingleFixDemo theApp = new SingleFixDemo(); theApp.enterEventDispatcher(); } public SingleFixDemo() { pushScreen(new SingleFixScreen()); } } - Créez le cadre de l'écran personnalisé en développant la classe MainScreen. Créez une instance de la classe LabelField pour stocker les coordonnées que vous voulez afficher à l'écran. Créez deux variables double pour stocker les valeurs de latitude et de longitude. Créez une variable integer et une variable String pour stocker le mode de positionnement.
class SingleFixScreen extends MainScreen { private LabelField _coordLabel; private double _latitude; private double _longitude; private int _modeUsed; private String _mode; } - Dans le constructeur d'écran, appelez super() pour créer un menu par défaut. Appelez setTitle() pour indiquer le titre de l'écran.
public SingleFixScreen() { super(DEFAULT_CLOSE | DEFAULT_MENU); setTitle(new LabelField("Single Fix Demo", Field.USE_ALL_WIDTH | DrawStyle.HCENTER)); } - Dans le constructeur d'écran, créez une instance de la classe ButtonField pour créer un bouton sur lequel l'utilisateur du terminal BlackBerry clique pour obtenir la localisation du terminal. Appelez Field.setChangeListener() pour détecter les modifications du bouton. Appelez findLocation(), comme décrit à l'étape 6, pour obtenir la géolocalisation lorsque l'utilisateur clique sur le bouton. Appelez add() pour ajouter le bouton à l'écran. Créez une instance de la classe LabelField pour afficher les coordonnées obtenues et appelez add() pour ajouter le champ à l'écran.
ButtonField locButton = new ButtonField("Get location fix", ButtonField.CONSUME_CLICK); locButton.setChangeListener(new FieldChangeListener() { public void fieldChanged(Field field, int context) { findLocation(); } }); add(locButton); this._coordLabel = new LabelField(); add(this._coordLabel); - Créez le cadre de la méthode findLocation. Appelez setText() avec une valeur String vide pour effacer les coordonnées de LabelField. Créez une instance de la classe Thread qui appelle run(). Ce fil est utilisé pour traiter la récupération des informations d'emplacement. Dans run(), créez un bloc try/catch pour indiquer les critères de récupération d'une position. Créez une instance de la classe BlackBerryCriteria en appelant BlackBerryCriteria(). Aucun argument n'est transmis à BlackBerryCriteria(), le mode de positionnement par défaut est donc utilisé. Appelez enableGeolocationWithGPS(BlackBerryCriteria.FASTEST_FIX_PREFERRED) pour récupérer la première position GPS disponible. Dans le bloc catch, appelez showException(), comme décrit à l'étape 10, pour afficher le message d'erreur d'une exception UnsupportedOperationException.
private void findLocation() { this._coordLabel.setText(""); Thread locThread = new Thread() { public void run() { try { BlackBerryCriteria myCriteria = new BlackBerryCriteria(); myCriteria.enableGeolocationWithGPS(BlackBerryCriteria .FASTEST_FIX_PREFERRED); } catch (UnsupportedOperationException e) { showException(e); } } }; locThread.start(); } - Dans le premier bloc try, créez un second bloc try/catch pour obtenir un fournisseur de positionnement. Appelez LocationProvider.getInstance() avec l'objet BlackBerryCriteria pour obtenir un fournisseur de positionnement. Dans le bloc catch, appelez showException(), comme décrit à l'étape 10, pour afficher le message d'erreur d'une exception LocationException.
try { BlackBerryLocationProvider myProvider = (BlackBerryLocationProvider) LocationProvider.getInstance(myCriteria); } catch (LocationException e) { showException(e); } - Dans le second bloc try, créez un troisième bloc try/catch pour obtenir les informations d'emplacement. Appelez BlackBerryLocationProvider.getLocation() avec un paramètre de -1 pour récupérer un fournisseur de positionnement à l'aide de la valeur de délai par défaut. Appelez getLongitude() et getLatitude() pour récupérer respectivement les coordonnées de latitude et de longitude. Appelez getGPSMode() pour récupérer le mode utilisé pour récupérer la position. Créez un bloc switch pour identifier si le mode utilisé est GPS ou la géolocalisation. Créez une instance de la classe StringBuffer et ajoutez les coordonnées obtenues et le mode au tampon. Créez une variable String et appelez toString() avec l'objet StringBuffer pour renvoyer la valeur String pour les coordonnées. Appelez showResults() pour afficher les résultats à l'écran, comme décrit à l'étape 9. Dans le premier bloc catch, appelez showException(), comme décrit à l'étape 10, pour afficher le message d'erreur d'une exception InterruptedException. Dans le second bloc catch, appelez showException(), comme décrit à l'étape 10, pour afficher le message d'erreur d'une exception LocationException.
try { BlackBerryLocation myLocation =(BlackBerryLocation)myProvider .getLocation(-1); _longitude = myLocation.getQualifiedCoordinates().getLongitude(); _latitude = myLocation.getQualifiedCoordinates().getLatitude(); _modeUsed = myLocation.getGPSMode(); switch (_modeUsed) { case LocationInfo.GEOLOCATION_MODE: case LocationInfo.GEOLOCATION_MODE_CELL: case LocationInfo.GEOLOCATION_MODE_WLAN: _mode = "Geolocation"; break; default: _mode = "GPS"; } StringBuffer sb = new StringBuffer(); sb.append("Longitude: "); sb.append(_longitude); sb.append("\n"); sb.append("Latitude: "); sb.append(_latitude); sb.append("\n"); sb.append("Mode: "); sb.append(_mode); String msg = sb.toString(); showResults(msg); } catch (InterruptedException e) { showException(e); } catch (LocationException e) { showException(e); } - Dans la méthode showResults, appelez invokeLater() pour ajouter une section de code à la file d'attente d'événement de l'application. Créez une instance de la classe Runnable et transmettez-la comme paramètre à invokeLater(). Remplacez run() dans la définition de Runnable. Appelez setText() avec la variable String pour indiquer les coordonnées obtenues pour LabelField.
private void showResults(final String msg) { Application.getApplication().invokeLater(new Runnable() { public void run() { SingleFixScreen.this._coordLabel.setText(msg); } }); } - Dans la méthode showException, appelez invokeLater() pour ajouter une section de code à la file d'attente d'événement de l'application. Créez une instance de Runnable et transmettez-la comme paramètre à invokeLater(). Remplacez run() dans la définition de Runnable. Appelez Dialog.alert() pour créer une boîte de dialogue d'alerte, et transmettez le message d'erreur en appelant getMessage().
private void showException(final Exception e) { Application.getApplication().invokeLater(new Runnable() { public void run() { Dialog.alert(e.getMessage()); } }); }
Sujet précédent: Récupération de la position GPS optimale par GPS et géolocalisation
Ces informations vous ont-elles été utiles ? Envoyez-nous vos commentaires.