3〜4フィートのような非常に短い距離の場所を変更した後、「GPS」を介してユーザーの正確な緯度と経度を取得することは可能ですか.
実際、ユーザーの緯度と経度を提供するアプリケーションをAndroidで作成しましたが、ユーザーの同じポイントまたは場所で値を変更します。
この問題から私を助けてください。前もって感謝します。
私の経験によると、使用している電話/デバイスによって異なります。デバイスが AGPS をサポートしている場合、GPS 座標の取得はより簡単かつ高速になります (Android SDK を使用するため、コーディングスキルとは関係ありません)。通常の GPS も正確なデータを返します。Google Play から Savaari アプリケーションをダウンロードしてみてください。2 番目の質問です。特定の時間または距離間隔の後に座標を取得することは可能です。リスナーを登録するときはいつでも、時間を提供する必要があります。 GPS 値を受信するまでの距離 (メートル単位)。
このスニペットをチェックしてください: -
public void startReadingGPS(int readAfterMinimumTime, int readAfterMinimumDistance ){
locationManager = (LocationManager)mContext.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, readAfterMinimumTime, readAfterMinimumDistance, this);
}
public void requestLocationUpdates (String provider, long minTime, float minDistance, LocationListener listener) API レベル 1 で追加 名前付きプロバイダーと保留中のインテントを使用して位置情報の更新を登録します。
このメソッドの使用方法の詳細については、requestLocationUpdates(long, float, Criteria, PendingIntent) を参照してください。
パラメータ provider 登録するプロバイダの名前 minTime 位置更新間の最小時間間隔 (ミリ秒単位) minDistance 位置更新間の最小距離 (メートル単位) listener 位置更新ごとに onLocationChanged(Location) メソッドが呼び出される LocationListener
アクティビティに locationlistener を実装する必要があります
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters
// The minimum time between updates in milliseconds
private static final long MIN_TIME_BW_UPDATES = 1000 * 60 * 1; // 1 minute
boolean isGPSEnabled = false;
LocationManager locationManager = (LocationManager) yourapplicationcontext
.getSystemService(LOCATION_SERVICE);
// getting GPS status
isGPSEnabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (isGPSEnabled) {
if (location == null) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
Log.d("GPS Enabled", "GPS Enabled");
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
//Add this permission
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />