본인은 GPS를 유도 할 수있는 간단한 클래스 GPSListener
좌표가 내 활동 : 나는 응용 프로그램을 실행할 때마다안드로이드 위치 서비스를 업데이트하지 requestLocationUpdates
LocationManager mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new GPSListener();
Criteria criteria = new Criteria();
String bestProvider = mlocManager.getBestProvider(criteria, false);
mlocManager.requestLocationUpdates(bestProvider, 0, 0, mlocListener);
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
if (mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
lat = GPSListener.latitude;
lon = GPSListener.longitude;
Log.d("GPS", "lat: "+lat+" long:"+lon);
} else {
// TODO: GPS not enabled
Log.d("GPSERROR", "GPS not enabled");
}
하지만 내 활동 lat
및 lon
은 항상 0입니다. 나는이 문제를 해결하는 방법을 잘 모른다.
로깅 : 활동이 시작된 후
Log.d("GPSLISTENER ", "lat: "+latitude+" long:"+longitude);
올바른 위도 및 경도를 반환은 단지 1 ~ 2 초 걸린다.
Log.d("GPSSUCCESS", "lat: "+lat+" long:"+lon);
둘 모두에 대해 0.0 만 반환됩니다. 나는 .requestLocationUpdates
이 if 문이 실행되기 전에 lat
과 lon
으로 값을 전달할 것이라는 인상을 받았다. 이것을 어떻게 할 수 있습니까?
실행하는 위치 얻기 위해 (android.permission.ACCESS_FINE_LOCATION) 위치에 대한 매니페스트 파일에 있습니까? – prijupaul
@prijupaul 예. –
에뮬레이터에서 테스트 중이라면 좌표를 전달해야합니다. 그렇지 않으면 장치를 다시 시작하고 확인하십시오. – Shrikant