私のアプリケーションでは、モバイルユーザーの更新された位置を取得したいのですが、特定の時間の定期的な間隔の後、またはユーザーが特定の距離 (たとえば 500 メートル) を移動した後、それをサーバーに継続的に送信したいと考えています。これらのことを行う必要があります。バックグラウンドで。これには、サービスクラスを実装する必要があることを知っています。しかし、私はこれを行う方法を正確に理解していません.私はそれにいくつかの作業をしました. 誰でもこの問題で私を助けてくれませんか。サービスクラスでは以下のことを行いました。
public class BackGroundService extends Service implements LocationListener{
public static final String Tag = BackGroundService.class.getName();
LocationManager myLocationManager;
Location myLocation;
LocationListener myLocationListener;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
public void OnCreate()
{
super.onCreate();
Log.d(Tag, "Service Started");
android.os.Debug.waitForDebugger();
Criteria criteria = new Criteria();
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_LOW);
String locationProvider = myLocationManager.getBestProvider(criteria, true);
myLocationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
myLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000*60*5, 500, myLocationListener);
myLocation = myLocationManager.getLastKnownLocation(locationProvider);
}
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
longitude = location.getLongitude();
latitude = location.getLatitude();
}
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
Log.d(Tag, "Provider is disabled");
}
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
Log.d(Tag, "Location Provider is enabled");
}
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
}
ここから、ユーザーの現在の緯度/経度を取得してサーバーに送信する方法を知りたいです。