0
GPS 수정 사항에 사용 된 위성을 가져 와서 자세한 정보를 얻으려고하지만 GpsStatus.getSatellites() 메소드는 위치의 위도/경도를 가져올 수 있지만 항상 빈 반복기를 반환합니다. 경도/고도는 괜찮습니다. Android GpsStatus는 항상 제로 위성을 가지고 있습니다.
LocationManager locationManager = (LocationManager) this.getSystemService(LOCATION_SERVICE);
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
//get location coordinates
mLatitude = location.getLatitude();
mLongitude = location.getLongitude();
double altitude = location.getAltitude();
Log.d("test2", "lat : " + mLatitude);
Log.d("test2", "long : " + mLongitude);
//get satellite data
GpsStatus gpsStatus = locationManager.getGpsStatus(null);
int satellites = 0;
int satellitesInFix = 0;
int timetofix = gpsStatus.getTimeToFirstFix();
Log.d("test2", "Time to first fix = " + timetofix);
for (GpsSatellite sat : gpsStatus.getSatellites()) {
if(sat.usedInFix()) {
satellitesInFix++;
}
satellites++;
}
Log.d("test2", "Satellites: " + satellitesInFix + "/" + satellites);
}
내가 디버그 로그에 들어갈 모든
은 또 다시, 다음과 같다 :09-06 18:42:48.093 6842-6842/com.android.example.gpstest D/test2: lat : 39.509401143731274
09-06 18:42:48.093 6842-6842/com.android.example.gpstest D/test2: long : -9.064780960816815
09-06 18:42:48.094 6842-6842/com.android.example.gpstest D/test2: Time to first fix = 0
09-06 18:42:48.095 6842-6842/com.android.example.gpstest D/test2: Satellites: 0/0
나는 이미 특정 모델과 몇 가지 특질 수 있습니다 생각에 여러 장치를 시도하지만, 모두 동일한 문제가 있으므로 내 코드가 옳지 않은 것 같습니다. 인공위성을 얻으려면 내가 무엇을해야합니까?
나는 활동의 onResume 메서드에 대해 requestLocationUpdates()를 호출하고 있으며 내가 게시 한 코드는 onLocationChanged 메서드 내에 있습니다. – SVM
왜 onLocationChanged에서 getLastKnownLocation을 호출하겠습니까? 마지막 위치 인 –
getGpsStatus 문서에서 다음을 수행합니다. "GPS 엔진의 현재 상태에 대한 정보를 검색합니다.이 데이터는 onGpsStatusChanged (int) 콜백에서 호출해야만 데이터가 원자 적으로 복사됩니다. GpsStatus 객체를 전달하여 최신 상태 정보로 설정하거나 null을 전달하여 새 GpsStatus 객체를 만듭니다. " –