2010-02-22 3 views
2

Je souhaite connaître la latitude et la longitude de l'utilisateur dans mon application BlackBerry, puis générer les cartes correspondantes.Latitude et longitude actuelles dans une application BlackBerry

Comment puis-je faire cela?

mon code est:

import java.util.Timer; 
import java.util.TimerTask; 

import javax.microedition.location.Criteria; 
import javax.microedition.location.Location; 
import javax.microedition.location.LocationListener; 
import javax.microedition.location.LocationProvider; 
import javax.microedition.location.QualifiedCoordinates; 

import net.rim.device.api.system.Application; 




public class GPS_Location 
{ 
    private String log; 
     double longi; 
     double lati; 

    public GPS_Location() 
    { 
     new LocationTracker(); 
    } 
    public boolean onClose() 
    { 
     Application.getApplication().requestBackground();  
     return false; 
    } 


class LocationTracker extends TimerTask 
{ 
    private double longitude, latitude; 

    private Timer timer; 
    private LocationProvider provider; 
    Criteria cr; 

    public LocationTracker() 
    { 
     timer = new Timer(); 
     cr= new Criteria(); 
     resetGPS(); 

     timer.schedule(this, 0, 60000); 
    } 

    public void resetGPS() 
    { 

     try 
     { 
      provider = LocationProvider.getInstance(cr); 
      if(provider != null) 
      { 
       /*provider.setLocationListener(null, 0, 0, 0); 
       provider.reset(); 
       provider = null;*/ 
       provider.setLocationListener(new MyLocationListener(), 3, -1, -1); 
      } 

      //provider = LocationProvider.getInstance(null); 

     } catch(Exception e) 
     { 

     } 
    } 


    public void run() 
    { 
     System.out.println("********************"); 
    } 

    private class MyLocationListener implements LocationListener 
    { 
     public void locationUpdated(LocationProvider provider, Location location) 
     { 
      if(location != null && location.isValid()) 
      {    
       QualifiedCoordinates qc = location.getQualifiedCoordinates(); 

       try 
       { 
        lati = location.getQualifiedCoordinates().getLatitude(); 
        System.out.println("********************latitude :: "+lati); 
        longi = location.getQualifiedCoordinates().getLongitude(); 
        System.out.println("********************longitude ::"+longi); 

       } 
       catch(Exception e) 
        { 

        } 
      } 

     } 

     public void providerStateChanged(LocationProvider provider, int newState) 
     { 
      //LocationTracker.this.resetGPS(); 
      if(newState == LocationProvider.TEMPORARILY_UNAVAILABLE) 
       { 
        provider.reset(); 
        provider.setLocationListener(null, 0, 0, -1); 
       } 
     } 
    } 
    } 
} 
+0

Essayez de donner quelques exemples de ce que vous avez regardé, essayez de fournir un code préliminaire dans votre question si possible. Aucun-le-moins, il y a un point de départ ci-dessous. –

Répondre

1

Un Google result (par pure coïncidence Stack Overflow) révèle l'appel API getLocation(). Cela peut vous fournir un point de départ pour récupérer la longitude et la latitude.

Addition; ce qui suit peut vous être utile (à partir d'une recherche Google ultérieure en utilisant des termes basés sur votre commentaire): http://www.blackberryforums.com/developer-forum/133152-location-api.html. Je cite une partie du code, mais il y a beaucoup d'information là-bas. Espérons simplement que le lien reste valide, ou vous postez votre solution quand vous l'avez trouvé :)

+0

J'ai utilisé location.getQualifiedCordinates mais yeilds 0 valeur pour latitude n longitude, j'ai même changé la valeur de cordinates dans le simulateur aussi – Swati

+0

hey Shadow j'ai travaillé de la même manière que le lien suggéré mais chaque fois le résultat est 0/0 (im travaillant sur tempête de simulateur 9000). – Swati

+1

hey frnz j'ai eu mon erreur, c'était avec simulateur la valeur n'a pas été réglée correctement .... mais merci de l'aide !!!!!!!!!!!!!! – Swati

Questions connexes