2011-03-18 100 views
0

如何通过Android中的GPS获取当前位置。我使用下面的代码..如何通过Android中的GPS获取当前位置

但是,当我使用LastKnowKnown位置时,它抛出空指针异常..代码如下

请任何机构给予帮助。如何解决?

public void getlocation() 
    {  

     lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 
     locationListener = new MyLocationListener(); 
     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener); 

    } 

class MyLocationListener implements LocationListener 
{ 
    String a; 
    String b; 
    String c; 


    public void onLocationChanged(Location loc) 
    { 
     if (loc != null) { 

      LAT = loc.getLatitude(); 
      LONG = loc.getLongitude(); 
      a=Double.toString(LAT); 
      b=Double.toString(LONG); 
      c="-----LAT is:"+a+" "+"LONG is--------:"+b; 
      System.out.println(c); 



     } 
    } 

public void getPresentLocation() { 
     String a; 
     String b; 
     String c; 

     lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); 
     Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
     LAT = location.getLatitude(); 
     LONG = location.getLongitude(); 
     a=Double.toString(LAT); 
     b=Double.toString(LONG); 
     c="-----LAT is:"+a+" "+"LONG is--------:"+b; 
     System.out.println(c); 

回答

2

documentation

如果提供当前被禁用,则返回null。

因此,如果有api返回null的可能性,请保留null检查以避免异常。就像你在第一个例子中所做的一样。

我认为你的情况下还没有缓存修复程序。