我有一部植根的手机Samsung N7100(kitkat 4.4.2)。 2019年4月6日之后,我开始获取日期为1999年的位置。
有时位置的日期为2019年,但此后设备将停止接收任何位置。
只有adb命令可以帮助您,但是一段时间后,设备将停止接收任何位置。
settings put secure location_providers_allowed -gps
settings put secure location_providers_allowed +gps
我尝试将固件更新为android 6和7。没有任何帮助。
mLocationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 0, this);
....
public void onLocationChanged(Location location) {
Log.d(TAG, (new Date(location.getTime())).toLocaleString());
}
最佳答案
这与某些类型的GPS芯片上出现的GPS Week Number Rollover问题有关。
解决此问题的一种方法是,检测到location.getTime()
返回的值太旧(例如,在2019年之前),如果是,请加上差值(1024周)。
该代码将在接下来的20年内起作用:
long gpsTime = location.getTime();
// Adding 1024 weeks for chips with GPS Week Number Rollover issue
// 1024 * 7 * 24 * 60 * 60 * 1000 = 619315200000L
if ((gpsTime > 0) && (gpsTime < 1546300800000L))
gpsTime += 619315200000L;
关于android - 2019年4月6日之后从Location.getTime返回的日期错误(周转期),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56147606/