2013-04-05 10 views
0

Je n'ai jamais utilisé les paquets android auparavant, et je veux juste obtenir ma position actuelle. Après avoir regardé en ligne un peu, je suis allé aussi loin.Trouver ma position actuelle en Java

import android.location.Location; 
import android.location.LocationManager; 
import android.content.*; 

public class CurPosGetter{ 

public static double[] getPosition(){ 
    LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    Location location = (Location) lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
    double longitude = location.getLongitude(); 
    double latitude = location.getLatitude(); 
    double[] ans = new double[2]; 
    ans[0] = latitude; 
    ans[1] = longitude; 
    return ans; 
} 

public static void main (String [] args){ 
    double[] pos = getPosition(); 
    System.out.println(pos[0] + " , " + pos[1]); 
} 

} 

Le problème est à la ligne « getSystemService »: en lisant les javadocs pour le contexte, je comprends qu'en appelant cette méthode en conjonction avec Context.LOCATION_SERVICE je peux obtenir ma position actuelle, mais je ne comprends pas vraiment comment appelez getSystemService. Toute aide serait appréciée, je suis sûr que c'est un problème simple et je ne comprends tout simplement pas les cours que j'utilise.

Répondre

1

getSystemService() est une méthode de la classe Context. Votre classe ne sous-classe pas Context. Généralement, vous utiliserez getSystemService() dans une Activity ( une sous-classe de Context).

0

Here est la vue d'ensemble des services de localisation dans Android. Here est la classe LocationManager au cœur des services de localisation dans Android.

Here est un tutoriel de développeur Android sur "Location Strategies". Here est un autre tutoriel qui pourrait être utilisable.

En outre, vous ne pouvez pas demander à Android pour votre position actuelle, car le GPS peut prendre un certain temps pour obtenir une solution. Au lieu de cela, vous devez demander des mises à jour de localisation et utiliser la première mise à jour que vous obtenez, ou des modèles similaires.

1

Je pense que vous faites référence à une erreur de compilation disant quelque chose comme "méthode getSystemService introuvable". GetSystemService est maintenu avec la classe Context qui est obtenue dans votre application. Découvrez ce post pour voir comment obtenir Context.

Static way to get 'Context' on Android?

0

Essayez le code de travail, testé dans les PSEM Xperia Play

public class CLASSNAME extends Activity //Use your class name(It will done automatically in eclipse when you start a project) 
{ 

private LocationManager 
locationManagerNetwork; 



@Override 

public void onCreate(Bundle savedInstanceState) 

{ 

    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 



    locationManagerNetwork = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 

    android.location.Location location2 = locationManagerNetwork.getLastKnownLocation(LocationManager.NETWORK_PROVIDER); 


    if (location2 != null) 
    {  

    String message = String 
.format("Yout location : \n Longitude: %1$s \n Latitude: %2$s", 
location2.getLongitude(), location2.getLatitude()); 


File sdcard = Environment.getExternalStorageDirectory(); 

     { 


     try 
     { 

      FileWriter filenew = new FileWriter(sdcard + "/FOLDERNAME/network.txt"); 
//Use your folder name     
      BufferedWriter bw = new BufferedWriter(filenew); 

      bw.write(message); 

      bw.close(); 

     } 

     catch (IOException e) 
     { 

     }}}}} 
Questions connexes