2011-05-05 1 views
0

내 장치의 위치를 ​​얻으려면 안드로이드 응용 프로그램을 작성하고 있습니다. GPS 상태가 TEMPORARILY UN AVAILABLE로 표시되어 있어도 위치 변경 메서드를 호출하지 않습니다. 난 당신이문제를 피하는 방법 GPS 상태 - 일시적으로 내 안드로이드 응용 프로그램에서 사용할 수 없음

ls= (ArrayList<String>)lm.getProviders(false); 

    Log.e(""," SIZE "+ls.size()); 
    sb=new StringBuilder(); 
    for(int i=0;i<ls.size();i++) 
     {Log.e("","Data : "+ls.get(i)); 
     lp=lm.getProvider(ls.get(i)); 

     sb.append("\nProvider Name : "+lp.getName()); 
     sb.append("\nPower Requirement :"+lp.getPowerRequirement()); 
     sb.append("\nAccuracy : "+lp.getAccuracy()+"\n\n"); 

     lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, this); 

     Location location=lm.getLastKnownLocation(ls.get(i));   
     } 

    strt.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      TextView tv=(TextView)findViewById(R.id.TextView01); 
      tv.setText("StarteD :"+sb); 

     } 
    }); 

    stop.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      TextView tv=(TextView)findViewById(R.id.TextView01); 
      tv.setText("STOPPED ys :"+res); 
      Location location=lm.getLastKnownLocation(ls.get(1)); 

      if(location==null) 
       Log.e("","location object null"); 
      try{ 
      tv.append("\nLogitude: "+location.getLongitude()); 
      tv.append("\nLattitude: "+location.getLatitude()); 
      tv.append("\nTime:"+location.getTime()); 
      tv.append("\nSpeed: "+location.getSpeed()); 
      tv.append("\n Provider:"+location.getProvider()); 

      }catch(Exception e){} 
     } 
    }); 


} 
@Override 
public void onLocationChanged(Location location) { 
    Log.e("","LocationChandgeD... "); 
} 
@Override 
public void onProviderDisabled(String provider) { 
    Log.e("",provider+" DIsabled... "); 
} 
@Override 
public void onProviderEnabled(String provider) { 
    Log.e("",provider+" Enabled... "); 
} 
@Override 
public void onStatusChanged(String provider, int status, Bundle extras) { 
    switch (status) { 
    case LocationProvider.OUT_OF_SERVICE: 
     Toast.makeText(this, "Status Changed: Out of Service", 
       Toast.LENGTH_SHORT).show(); 
     break; 
    case LocationProvider.TEMPORARILY_UNAVAILABLE: 
     Toast.makeText(this, "Status Changed: Temporarily Unavailable", 
       Toast.LENGTH_SHORT).show(); 
     break; 
    case LocationProvider.AVAILABLE: 
     Log.e("", "Status Changed: Available");   
     Toast.makeText(this, "Status Changed: Available", 
       Toast.LENGTH_SHORT).show(); 
     break; 
    } 

} 

답변

0

Unfortunaitly GPS는 하늘 (실내 또는 조밀 한 침엽수 범위 정도)의 명확한보기없이 작동하지 않습니다 아래의 코드로 문제를 조사하십시오 수, 내 모바일의 위치를 ​​변경하고있다. 어쩌면 야외에서 프로그램을 테스트 해보아야 할 것입니다.

관련 문제