android速度使用粗糙
大家好 如何在android中使用android速度使用粗糙,android,performance,location,Android,Performance,Location,大家好 如何在android中使用ACCESS\u rough\u位置获得速度 谢谢你很可能你不能。“粗糙”的定位技术只知道你在几百米以内的位置。你的速度可能变化很大。如果你需要知道你的速度,你很可能需要一个“好”的位置提供者 或者,更好的做法是,使用Criteria对象规定您需要了解设备的速度,并让它引导您找到最佳的提供商使用。您好,您指的是位置。getSpeed()我认为这是一个可选字段,可能取决于设备是否真正支持它。首先,试试这个 Criteria criteria = new Crite
ACCESS\u rough\u位置
获得速度
谢谢你很可能你不能。“粗糙”的定位技术只知道你在几百米以内的位置。你的速度可能变化很大。如果你需要知道你的速度,你很可能需要一个“好”的位置提供者
或者,更好的做法是,使用Criteria对象规定您需要了解设备的速度,并让它引导您找到最佳的提供商使用。您好,您指的是
位置。getSpeed()
我认为这是一个可选字段,可能取决于设备是否真正支持它。首先,试试这个
Criteria criteria = new Criteria();
criteria.setSpeedRequired(true);
LocationProvider[] providers = mLocationManager.getProviders(criteria, false);
if (providers == null || providers.length == 0) {
//Sorry it doesn't do it by default.
}
幸运的是,数学和科学将帮助我们:)只要计算一下从位置提供商获得更新时的速度即可。确保将lat、longs和times之间的距离计算为两个位置更新记录的时间戳的差值
...
onLocationChanged(Location location) {
if (mOldLocation != null) {
float distance = getDistance(mOldLocation, location);
long time = location.getTime() - mOldLocation.getTime();
mSpeed = distance/time;
}
mOldLocation = location;
}
它不一定非常准确(可能真的很吵),但做柠檬水比吃腐烂的水果更好。。。希望这能有所帮助。确保也只比较同一提供程序中的增量。您可能会发现自己正在调整手动计算,因为设备提供商非常多样化,并且不能保证时间总是向前移动。确定是否可以获得开始和结束坐标以及达到扩张所需的时间,并从中获得准确的速度it@Moe:“准确”?那要看你的意思了。见@Greg的答案。