2010-02-15 7 views
1

온라인 튜토리얼을 읽고 LocationManager가이 작업을 수행함을 알았습니다. 이것은 온라인에서 찾은 코드입니다. 그러나, 나는 그것을 얻지 않는다. 왜 내가 장거리/위도를 얻을 수없는거야? 왜 모든 "변경"위치 것들을 통과 ...Android에서 위도, 경도를 어떻게 확인할 수 있습니까?

lm=(LocationManager)this.getSystemService(LOCATION_SERVICE); 
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 10, 10, new LocationListener(){ 

     @Override 
     public void onLocationChanged(Location location) {       
      Log.d("a","onLocationChanged: lat="+location.getLatitude()); 
      Log.d("a","onLocationChanged: lat="+location.getLongitude());     
     } 

     @Override 
     public void onProviderDisabled(String provider) { 
      Log.d("a","onProviderDisabled: " +provider); 
     } 

     @Override 
     public void onProviderEnabled(String provider) { 
      Log.d("a","onProviderEnabled: " +provider); 
     } 

     @Override 
     public void onStatusChanged(String provider, int status,Bundle extras) { 
      Log.d("a","onStatusChanged: " +provider + status); 
     } 

    }); 

그런데이 코드는 작동하지 않습니다. 타이머로 실행할 때 ... 아무 일도 일어나지 않습니다. 아무것도 기록되지 않습니다. 나는 위도 위도를 원한다!

답변

2

LocationManager는 마지막으로 알려진 위치를 반환 할 수 있지만 매우 정확하지 않으므로 위치 업데이트를 요청하고 첫 번째 위치를 기다려야합니다. 그런 다음 계속 수신하거나 취소 할 수 있습니다. 네트워크 및 GPS 업데이트를 요청할 수 있습니다.

코드를 테스트하기 위해 휴대 전화를 사용하는 경우 GPS 수정을 기다려야하며이 작업에는 어느 정도 시간이 걸릴 수 있습니다. 네트워크 공급자가 훨씬 빨라야합니다.

Eclipse을 사용하는 경우 DDMS을 사용하여 인공 위성 업데이트를 보내야합니다. 에뮬레이터에서 네트워크 공급자를 테스트 할 수는 없습니다 (업데이트를받지 못할 것입니다).

관련 문제