特定の時間間隔で GPS 位置を取得するためrequestLocationUpdates()
のクラスの使用。LocationManager
参考までに調べてみてください。
1 分ごとに緯度と経度でユーザーの現在の位置を取得する次のコード スニペットを参照してください。
public Location getLocation() {
Location location = null;
try {
LocationManager locationManager = (LocationManager) mContext.getSystemService(LOCATION_SERVICE);
// Getting GPS status
boolean isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
// If GPS Enabled get lat/long using GPS Services
if (isGPSEnabled) {
if (location == null) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES,
this
);
if (locationManager != null) {
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
を取得した後、詳細なアドレスを取得するためLatitude
にLongitude
使用します。Geocoder
public List<Address> getCurrentAddress() {
List<Address> addresses = new ArrayList<Address>();
Geocoder gcd = new Geocoder(mContext,Locale.getDefault());
try {
addresses = gcd.getFromLocation(latitude, longitude, 1);
} catch (IOException e) {
e.printStackTrace();
}
return addresses;
}
編集:
上記のすべての機能をクラスでextends Service
実行して、appln が閉じていてもユーザーの位置を追跡できるようにします。サンプルについては以下を参照してください
public final class LocationTracker extends Service implements LocationListener {
// Your code here
}