Androidでアプリケーションを開発しました。を使用した車両追跡システムGPS
です。アプリケーションは緯度と経度の座標を送信します。これはオンラインの mysql データベースに保存されます。この座標は、デバイスが移動したパスを描画するために Java Web アプリケーションによって取得されます。また、アプリケーションは 2 つの座標間の距離を計算し、その距離に基づいて緯度と経度の座標を送信します。つまり、デバイスがその地点で 20 メートルの距離をカバーする場合、ある地点から別の地点まで緯度と経度を送信します。 Google マップに保存および描画するための Web アプリケーションと連携します。
問題
アプリケーションは正常に動作しますが、問題はアプリケーションの起動時であり、動かない場所に置いておくと、正しくない座標が送信されます。たとえば、下の写真では、デバイスが停止したとき (Google マップの黒いスポット)、実際にはしばらくの間その場所にあったはずですが、写真に示されているように、デバイスはどこかに行き、行き来しています。デバイスが動いていなくてもどこかに。
これを防ぐための解決策を誰か教えてください
これらは私の許可です
<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();