Как отправить обновленный длинный / лат на сервер в Android?

1

В моем приложении я хочу получить обновленное местоположение мобильного пользователя, и я хочу отправить его на сервер непрерывно после периодического интервала определенного времени или после того, как пользователь совершит определенное (скажем, 500-метровое) расстояние. Мне нужно, чтобы это было сделано в backgroung.I знаю, для этого мне нужно реализовать класс обслуживания. Но я не понимаю, как это сделать. Я немного поработал над этим. Может кто-нибудь, пожалуйста, помогите мне в этом вопросе. Я делал следующие вещи в классе обслуживания.

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

    }
}

Отсюда я хочу знать, как я могу получить текущий lat/long пользователя и отправить его на сервер.

Теги:
android-service

1 ответ

1
Лучший ответ

Ответ на мой вопрос:.......

public class LocationService extends Service{

@Override
public void onCreate() {
    // TODO Auto-generated method stub
    super.onCreate();
    final LocationManager mlocmag = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    final LocationListener mlocList = new MyLocationList();
    final Location loc = mlocmag.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    UpdateWithNewLocation(loc); // This method is used to get updated location. 
    mlocmag.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocList);
}

@Override
public IBinder onBind(Intent arg0) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
}

@Override
public void onStart(Intent intent, int startId) {
    // TODO Auto-generated method stub
    super.onStart(intent, startId);
}
 private void UpdateWithNewLocation(final Location loc) {
        // TODO Auto-generated method stub

        if(loc!= null)
        {
        final double lat =loc.getLatitude(); // Updated lat
        final double Long = loc.getLongitude(); // Updated long


        ConnectMySQL obj = new ConnectMySQL();
        obj.call(lat,Long); // Call this method when location is updated and save the data.

        }

        else 
        {
            String latLongStr = "No lat and longitude found";
              Toast.makeText(this, "Your location is "+latLongStr ,Toast.LENGTH_LONG).show();
        }


    }
    public class MyLocationList implements LocationListener
    {

        public void onLocationChanged(Location arg0) {
            // TODO Auto-generated method stub
            UpdateWithNewLocation(arg0);
        }

        public void onProviderDisabled(String provider) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(),"GPS Disable ", Toast.LENGTH_LONG).show();
        }

        public void onProviderEnabled(String provider) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(),"GPS enabled", Toast.LENGTH_LONG).show();
        }

        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub

        }

    }
  • 0
    просто понять ..... спасибо ...
  • 0
    @kyogs спасибо, приятель.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню