7
Zaman ve uzaklık aralıklarını nasıl güncelleyebilirim veya requestLocationUpdates öğesini farklı aralıklarla tekrar nasıl arayabilirim?request in requestLocationUpdates
Kodum:
LocationManager locationManager = (LocationManager) activityObject.getSystemService(Context.LOCATION_SERVICE);
cll = new CheckinLocationListener();
LocationProvider gps = locationManager.getProvider(LocationManager.GPS_PROVIDER);
// GPS
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, timeDelay, distanceDelay, cll);
Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
onLocationChanged: Ben önümüzdeki tedbir yeni aralıklarını kullanmak istiyorum
if(location.getSpeed()>=0 && location.getSpeed()<= 3)
{
LocationsModel.this.distanceDelay = 25;
LocationsModel.this.timeDelay = 10000;
}
else if(location.getSpeed()>=3 && location.getSpeed()<= 17)
{
LocationsModel.this.distanceDelay = 150;
LocationsModel.this.timeDelay = 60000;
}
else if(location.getSpeed()>=17)
{
LocationsModel.this.distanceDelay = 300;
LocationsModel.this.timeDelay = 240000;
}
.
Çalışıyor, denetimlerden sonra Konumlandırmayı Değiştirdim, ancak sonsuz döngüden geçiyor, gps'i başlatıyor ve her saniyeden sonra kapatıyor. Böylece gps simgesi sürekli yanıp sönüyor ve her saniye için bir koordinat alıyorum. – McDermott
Belki de "hareket ediyorum" koşulunu değiştirmelisiniz, çünkü bu durum sabit olduğunuzda bile true olacaktır veya LocationProvider hızı desteklemiyorsa (location.getSpeed ()> = 0' yüzünden). Belki de burası 'location.getSpeed ()> = 0,5 'olmalıdır, böylece küçük hareketler nedeniyle sürekli olarak jabberleme yapmaz. Belki de, öncelikle, location.hasSpeed () 'ı da kontrol etmelisiniz. –
location.hasSpeed () ve location.getSpeed ()> = 1'i denedim, ancak yine de her saniye bir koordinat alıyorum. Yeni bir requestLocationUpdates çağrısı yaptığımda, hemen bir gps sağlayıcısına bağlanarak CallLocationChanged öğesini çağırdığında, bu yüzden neden döngü yaptığını düşünüyorum. – McDermott