我目前正在尝试使用GPS(Google Play定位服务)来提高用户的速度。
然而,我的代码的问题是速度停留在一个非常小的数字 - 下降到1.9 ^ E18,基本上为0.即使我四处走动,这个值也不会改变。
我目前正在尝试使用速度和时间戳手动计算用户的速度。但是,我还发现了一个名为getSpeed()的函数。我正在考虑使用它,但我在这里发现的许多抱怨说它总是返回零。
首先 - getSpeed()仅用于模拟位置,还是可以安全地使用GPS获取的位置对象?
其次如果getSpeed不起作用,我将需要继续手动获取速度。我相信铸造可能存在问题。 有人可以帮助我找到当前方法的问题吗?
public void onLocationChanged(Location location) {
location.getLatitude();
Toast.makeText(this, "Location Changed", Toast.LENGTH_SHORT).show();
if (settings == null) {
settings = getSharedPreferences(PREFS_NAME, 0);
}
int TimeDifference = (int) (location.getTime() - OldLocation.getTime());
int distance = (int) OldLocation.distanceTo(location);
double speed = distance / TimeDifference;
if (LowerLimit < speed && speed < UpperLimit) {
TimeInstance += TimeDifference;
}
if (TimeInstance>TimeLimit) {
if (!dialogShown) {
dialogShown = true;
ViolationMessage();
TimeInstance = 0;
}
else {
TimeInstance = 0;
}
}
OldLocation = location;
}