Я пытался определить скорость автомобиля Android, но мне не удалось использовать location.getSpeed (). Вместо этого я решил использовать метод barebones, в котором я сохраняю прошедшее время и расстояние и использую их для определения значения скорости. Единственная проблема, которая у меня есть сейчас, заключается в том, что она дает мне ноль при вызове функции. По какой причине? Спасибо за помощь.
Я использую пробег, чтобы иметь задержку между показаниями при движении устройства.
public double calculateVelocity() {
Location firstspeedvalue = new Location("speedcheck");
double[] Speedval = getGPS();
firstspeedvalue.setLatitude(Speedval[0]);
firstspeedvalue.setLongitude(Speedval[1]);
long starttime = System.nanoTime();
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
}
}, 10000);
Location secondspeedvalue = new Location("speedcheck");
double[] newSpeed = getGPS();
secondspeedvalue.setLatitude(newSpeed[0]);
secondspeedvalue.setLongitude(newSpeed[1]);
long secondTime = System.nanoTime();
Double elapsedTime = Double.valueOf(starttime - secondTime);
Double totalDistance = calculateDistanceKM(firstspeedvalue.getLatitude(), firstspeedvalue.getLongitude(), secondspeedvalue.getLatitude(), secondspeedvalue.getLongitude());
double velocity = totalDistance / elapsedTime;
Log.d("valuescheck", String.valueOf(velocity));
return velocity;
}




проверить это stackoverflow.com/questions/13285677/…