2012-07-21 3 views
2

내 앱은 GPS을 사용하여 현재 위치를 찾습니다. 실외에서 잘 작동합니다. 그러나 GPS을 사용할 수 없거나 가난한 사람은 계속해서 업데이트를 시도하고 배터리를 소모합니다. 그래서 GPS 가난하거나 사용할 수 없을 때 업데이 트를 중지하고 싶습니다. 당신은 GPS 실내에서 사용할 수없는 경우 그것은 잘 작동android : GPS 업데이트를 중지 할 수 없습니다.

lm.removeUpdates(locationlistenerforGPS);

사용하도록 제안 할 수 있습니다. GPS이 불량하거나 사용할 수 없을 때 업데이트를 중지하고 싶습니다.

내 코드는

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
LocationListener locationlistenerforGPS = new mylocationlistenerGPS(); 
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationlistenerforGPS); 

내 locationlistenerGPS() 함수는

private class mylocationlistenerGPS implements LocationListener { 
    @Override 
    public void onLocationChanged(Location location) { 
     counterGPS++; 
     if (location != null) { 
     Log.d("LOCATION CHANGED", location.getLatitude() + " "); 
     Log.d("LOCATION CHANGED", location.getLongitude() + " "); 
     Toast.makeText(LocationActivity.this,"latitude: "+ 
      location.getLatitude() + "longitude: " + location.getLongitude() 
      + " Provider:" + location.getProvider() + " Accuracy:" + location.getAccuracy(), 
      Toast.LENGTH_LONG).show(); 
     } 

    } 
    @Override 
    public void onProviderDisabled(String provider) { 
    } 
    @Override 
    public void onProviderEnabled(String provider) { 
    } 
    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
    } 
    } 

도움이 모든 종류의 주셔서 대단히 감사합니다.

답변

1

minTimeminDistancerequestLocationUpdates()에 0으로 설정하지 마십시오. requestLocationUpdates() 설명서를 참조하십시오.

onStatusChanged()의 번들 엑스트라에는 위성을 포함 할 수 있습니다. GPS를 통해 추가 정보가 필요하면 불량 신호를 정의 할 수있는이 방법으로 위성을 사용할 수 있으며 NmeaListener을 사용할 수 있습니다.

+0

Mr.Biegleux 답장을 보내 주셔서 감사합니다. 그러나'GPS' 신호가 좋지 않거나 사용할 수 없을 때'onStatusChanged()'가 작동하지 않습니다. 내 질문은'GPS '가 사용 가능하지 않거나 불량 할 때 어떻게 업데이트를 멈출 수 있습니까? – Kabir

+0

아마도 이러한 답변을 시도해보십시오. http://stackoverflow.com/questions/2021176/how-can-i-check-the-current-status-of-the-gps-receiver 및 GpsStatus.Listener 클래스. – biegleux

관련 문제