我在android中开发了一个应用程序。它是一个车辆跟踪系统,它使用GPS
. 该应用程序发送存储在在线 mysql 数据库中的纬度和经度坐标,Java Web 应用程序使用该数据库来绘制设备行进的路径。该应用程序还计算两个坐标之间的距离,并根据该距离发送纬度和经度坐标,即从一个点到另一个点,如果设备在该点覆盖 20 米的距离,它发送纬度和经度与用于在 google-map 中存储和绘图的 web 应用程序的坐标。
问题
该应用程序工作正常,但问题是当应用程序启动时,当它保持在一个没有任何移动的地方时,它正在发送一些不正确的坐标。例如在下图中,当设备停止时(谷歌地图中的黑点),实际上暂时应该在那个位置,而不是如图所示,设备一直在某个地方,然后又来又去即使设备没有移动,也可以在某个地方。
谁能告诉我一些解决方案来防止这种情况
这些是我的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
更新 1
LocationManager mlocmag = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocList = new MyLocationList();
Location loc1 = mlocmag.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (loc1 == null) {
loc1 = mlocmag.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
String lat =loc1.getLatitude();
String Longs = loc1.getLongitude();