Отправка обновлений местоположения на сервер в Android - PullRequest
1 голос
/ 24 марта 2012

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

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

03/25/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();

    }...

Это дает мне тост с надписью "Response String Test".Хорошо, теперь это работает, но как я отправлю две разные переменные, такие как long и lat.и затем получить две разные переменные из responseHandler, когда я выполню httpclient.execute (httppost, responseHandler команда.

Ответы [ 2 ]

1 голос
/ 24 марта 2012

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

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

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

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

1 голос
/ 24 марта 2012

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

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

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

...