Отправка обновлений местоположения на сервер в Android

1

Я разрабатываю приложение для доказательства концепции в школе, и мне нужно разработать простое приложение, которое позволяет родительскому треку дочернее устройство Android. Я выяснил, как использовать GPS для получения обновлений местоположения сейчас. Каков наилучший способ преодоления разрыва между родительским устройством и дочерним устройством? Как приложение узнает, кто является родителем и кто является ребенком? Также лучше всего отправить дочерние данные с помощью getLastKnownLocation (лучше всего) на удаленный сервер, а затем каким-либо способом отправить родителя или есть более простой способ сделать это?

Заранее спасибо.

25.03.2012 ******** Обновление ***********************

Хорошо, основываясь на советах от вас, ребята, у меня есть PHP-код в файле

<?php
$thisString = $_POST["action"]; // Variable to receive the request from 
echo $thisString;
?>

и я отправляю строку в веб-службу с этим кодом в методе

    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://kre8tiveinspired.com/android/simpleTest.php");
    // This is the data to send
    String MyName = **"String Test"**; //any data to send
    try {
    // Add your data
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
    nameValuePairs.add(new BasicNameValuePair("action", MyName));

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

    // Execute HTTP Post Request
    ResponseHandler<String> responseHandler = new BasicResponseHandler();
    String response = httpclient.execute(httppost, responseHandler);

    //This is the response from a php application
    String reverseString = response;
    Toast.makeText(this, "response " + reverseString, Toast.LENGTH_LONG).show();

    }...

Это дает мне тост, говорящий "тест стринг-теста". ОК теперь это работает, но как я могу отправить две разные переменные, такие как long и lat. а затем получить две разные переменные из responseHandler, когда я выполняю команду httpclient.execute(httppost, responseHandler.

Теги:
tracking
gps

2 ответа

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

Вероятно, ваше приложение должно зарегистрировать будильник, который просыпает службу, установленную с вашим приложением, на дочернем телефоне. Эта служба должна отправлять данные о местоположении на сервер, который будет перенаправлять его на родительский телефон. Приложению также потребуется установить службу на родительском телефоне для получения уведомлений.

Чтобы решить, кто является родителем, а какой является дочерним, вам, скорее всего, нужно будет настроить приложение отдельно на каждом телефоне, то есть родительский установить приложение на свой телефон и на дочерний телефон и установить дочерний телефон в качестве дочернего и их как родителя, Вы можете защитить паролем эту настройку. Другим вариантом будет разработка двух приложений: Where My Kid (отслеживание) и Where My Kid (родительский).

Наконец, вам нужна система, работающая на сервере для управления данными, поступающими от ребенка. Затем он отправит соответствующую информацию родительскому устройству. Вы также можете создать родительскую учетную запись, а затем войти в нее на родительском и дочернем устройствах, чтобы сервер знал, куда отправлять информацию.

Это непростой проект. Если вы хотите создать что-то коммерческое или дистрибутивное, для этого потребуется немалая работа. Если это действительно только доказательство концепции, как вы упомянули, вы можете сократить некоторые углы. В любом случае, то, что я изложил, в значительной степени минимально вам нужно.

  • 0
    Да, это доказательство концепции, поэтому я определенно собираюсь срезать углы. Один вопрос к вам и @broschb, как настроить сервер. У меня есть собственная учетная запись хостинга, которая использует cpanel. Какую систему лучше настроить для получения данных?
  • 0
    Все в PHP или Rails будет работать замечательно. По сути, вы настраиваете различные веб-страницы, которые служат «API» вашего сервера. Ваше приложение будет вызывать различные веб-страницы (или одну большую веб-страницу) с координатами местоположения в очереди или чем-то еще.
Показать ещё 3 комментария
1

Простым подходом было бы выполнение службы на дочернем устройстве. Каждый так часто получает текущее местоположение и отправляет обновление на сервер. Тогда у вас будет приложение на родительском устройстве, которое может по запросу или в другом опросе службы для обновлений через регулярные промежутки времени.

Это самый простой подход, но вы должны выполнить то, что хотите. Что касается определения того, какое устройство должно быть у вас в состоянии контролировать это на уровне приложения (может быть два разных приложения или одно и то же приложение, а другое - как клиент (дочерний) в конфигурации, возможно, ключ для изменения настроек или, возможно, те, которые вытаскиваются с сервера.Также вы захотите получить некоторую пару, чтобы вы могли убедиться, что родитель просматривает правильную дочернюю информацию. Это может быть так же просто, как вывод, который генерируется и отображается на обоих устройствах для подтверждения во время начальной настройки,

Я начал бы просто и расширяться по мере развития потребностей.

  • 0
    Большое спасибо! Я собираюсь начать испытывать это сейчас. Я вернусь, если я застряну где-нибудь по пути. Еще раз спасибо.
  • 0
    @ Дэвид Кауден, пожалуйста, ознакомьтесь с моим обновлением в моем сообщении

Ещё вопросы

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