2011-12-09 2 views
4

버튼 클릭으로 경도와 위도로 위치 정보를 가져 오는 Android 앱을 만들었습니다.Android GPS가 정확한 시간이 걸립니다.

처음에는 앱을로드 할 때/gps를 켜면 처음에는 내가 알고있는 마지막 위치 정보를 얻습니다.

Google지도에서 '위치 대기 중'이라는 축배 메시지를받을 때처럼 정확할 때까지 기다리는 방법을 알고 싶습니다.

코드를 향상시킬 수있는 방법이 있으면 도움이 될 것입니다. 참조

코드 : 읽기

public class Clue extends Activity { 

    public static double latitude; 
    public static double longitude; 
    Criteria criteria; 
    LocationManager lm; 
    LocationListener ll; 
    Location location; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.questions); 

     criteria = new Criteria(); 
     criteria.setAccuracy(Criteria.ACCURACY_FINE); 
     lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
     ll = new MyLocationListener(); 
     lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0, ll);   
} 



private boolean weAreThere() { 
    location = getLocation(); 
    longitude = location.getLongitude(); 
    latitude = location.getLatitude(); 

    return inCorrectPlace(param); 
} 

private Location getLocation() { 
    lm.requestLocationUpdates(lm.getBestProvider(criteria, true), 0, 0, ll); 
     return lm.getLastKnownLocation(lm.getBestProvider(criteria, true)); 
} 
} 

    public class MyLocationListener implements LocationListener 
    { 
     public void onLocationChanged(Location loc) 
     {   
      Clue.longitude = loc.getLongitude(); 
      Clue.latitude = loc.getLatitude(); 
     } 
} 

덕분에, 모든 응답은 이해할 수있을 것이다.

+0

최고의 공급 업체에 반대하는 모든 공급자를 사용 어쩌면 생각? 그것은 매우 정확하지 않아야합니다. –

답변

4

Location.hasAccuracy() true를 반환하는 경우, 당신은 당신이 충분히 정확을 고려하지 않는 다음, 미터의 정확성을 검색 할 Location.getAccuracy()를 호출하는 사람을 필터링 할 수 있습니다.

LocationManager.GPS_PROVIDER을 사용하고 있지 않으므로 Wi-Fi와 같은 다른 방법으로 수정 프로그램을 얻을 수 있습니다.

일반적으로 GPS 칩이 야외에서 GPS 수정을 받기 전에 GPS 칩이 "뜨거워"지려면 약 1 분 정도 걸립니다.

* 뜨겁게는 위성 수신 범위를 의미합니다. 일부 칩셋은 배터리를 보존하기 위해 잠시 후 연결이 끊깁니다 ("춥다"). TTFF (Time To First Fix)는 칩이 차가울 때 더 큽니다.

2

처음에, u는 또한 getlastknownLocation()

를 사용하여 고정 가야, U는 현명하게 사용 된 경우 NETWORK.PROVIDER이 ... 통해 UR 배터리를 소모하지 아니한다 사용하여 위치를 업데이트하는 백그라운드 서비스를 사용하여 ... 또한 작동 할 수 있습니다 GPS가 꺼져있는 경우

네트워크 공급자가없는 경우 사용자는 GPS를 켜도록 시도해야합니다.

유 시도 2.2을 사용하여 r에 경우 PASSIVE PROVIDER

관련 문제