#java #android #xml #json
#java #Android #xml #json
Вопрос:
Приложение основано на отслеживании GPS, где координаты широты и долготы должны отправляться через регулярные промежутки времени. Сейчас мы вручную вводим координаты через DDMS. Отправка данных была довольно сложной задачей. Итак, у кого-нибудь из вас есть какие-то предложения?
Ответ №1:
Я думаю, вам нужно где-то хранить местоположение, поэтому создайте ApplicationController, который расширяет класс приложения с Android, и установите его в манифесте Android, в AC создайте поле Location и в onLocationChanged (Location location), созданную функцию, которая сохранит новое местоположение в AC, чем созданную TimerTask с частотой, с которой он должен получать местоположение от AC и отправлять его куда вы хотите.
ApplicationController будет хранить всю информацию до тех пор, пока приложение «живо» в этом классе, вам также нужно создать средства доступа 😉 пример кода ниже:
ApplicationController.java
import android.app.Application;
import android.location.Location;
public class ApplicationController extends Application{
private Location location = null;
@Override
public void onCreate() {
super.onCreate();
}
public void setLocation(Location location){
this.location = location;
}
public Location getLocation(){
return location;
}
}
Запись в манифесте Android:
<application
android:label="@string/app_name"
android:allowClearUserData="false" android:name="core.ApplicationController"
android:icon="@drawable/driving">
Пример использования в коде:
AC = (ApplicationController) getApplicationContext();
private void initializeGpsTask(long frequency){
gpsTask = new TimerTask() {
@Override
public void run() {
Log.i(TAG, "GPS TASK");
if(AC.getLocation()!=null){
insertIntoDatabase(transactions.generateRequest(
AC.getLocation()));
}
}
};
Timer timer = new Timer();
timer.schedule(gpsTask, frequency, frequency);-
}
Это может быть полезная ССЫЛКА
Ответ №2:
Вы должны реализовать класс LocationListener для прослушивания местоположения
onLocationChanged(Location location) {
lat = location.getLatitude();
lon = location.getLongitude(0;
}
Теперь, когда вы получите широту и долготу, вам нужно будет отправлять их на сервер через регулярные промежутки времени.
Вы можете использовать службу для прослушивания информации о местоположении в фоновом режиме, и если вы получили onLocationChanged
событие, установите http-соединение с вашим веб-сервисом и отправьте широту и долготу на сервер.