GPS-трекер, мониторинг местоположения сотрудника.

Запускаем на эмуляторе, указываем параметры авторизации, нажимаем кнопку «Включить», сервис мониторинга будет запущен (TextView  отображающий статус  при этом правда не изменится, т.к. обновляется  только при запуске программы).

В Eclipse переключитесь на перспективу DDMS (если ее нет – можно добавить, см. Using DDMS)  и выделите в окне «Devices» эмулятор.

Эмулируем получение устройством новых координат, для этого в окне «Emulator control» введите новые координаты и нажмите Send

Если вы нигде не ошиблись, координаты будут отправлены на сервер, результат отображён в логе (LogCat)

Проверьте получение и обработку данных сервером 1С. Откройте регистр сведений «Журнал событий», вы должны увидеть минимум 3 записи:

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

Примечание:

Метод «GetShortData»  в этом примере не показан, но он работает аналогично, только «в другую сторону»:
- по запросу от мобильного клиента 1С передает данные (будут автоматически преобразованы  как json-строка):

Функция ПодготовитьСтруктуруПроизвольныхДанныхДляОтправки(МобильноеПриложение,МобильныйКомпьютер,МобильныйСотрудник,Идентификатор) Экспорт
    Данные = Неопределено;
    Если Идентификатор = "your_id" Тогда
        Данные = Новый Структура("your_field01,your_field02,your_field03",Истина,100,"Строковое значение");
    КонецЕсли;
    Возврат Данные; 
КонецФункции

- мобильный клиент десериализует и обрабатывает полученные данные

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
mExchangeManager.getShortData("your_id", new ISimpleCallbackListener() {
 
@Override
        public void onError(String event, String msg) {                 
        }
 
        @Override
        public void onComplete(boolean result, Object data) {
                if(data instanceof String){
                        try {
                                JSONObject jsonObject = new JSONObject((String)data);
                                boolean value1 = jsonObject.getBoolean("your_field01");
                                int value2 = jsonObject.getInt("your_field02");
                                String value3 = jsonObject.getString("your_field03");
                        } catch (JSONException e) {
                                e.printStackTrace();
                        }
                }
        }
 
        @Override
        public void onCancel() {
        }
});
mExchangeManager.getShortData("your_id", new ISimpleCallbackListener() {

@Override
    	public void onError(String event, String msg) {                	
    	}

    	@Override
    	public void onComplete(boolean result, Object data) {
    	    	if(data instanceof String){
                    	try {
                    	    	JSONObject jsonObject = new JSONObject((String)data);
                            	boolean value1 = jsonObject.getBoolean("your_field01");
                            	int value2 = jsonObject.getInt("your_field02");
                            	String value3 = jsonObject.getString("your_field03");
                    	} catch (JSONException e) {
                            	e.printStackTrace();
                    	}
            	}
    	}

    	@Override
    	public void onCancel() {
    	}
});

Пример завершен, загрузите в 1С полученный apk файл как версию 1.00 мобильного приложения «Мониторинг».

Дополнительная информация по теме:

1. Сервисы, лог и отладка
С сайта http://startandroid.ru/. Google Android. Уроки для начинающих
Урок 12. Логи и всплывающие сообщения – RU,  показан лог
Урок 92. Service. Простой пример - RU, объясняется что такое “сервис”
Сервисы – это просто – RU, еще одна подробная статья про сервисы.

2. Json – сериализация
google-gson – EN, эта библиотека уже включена в состав “FBA Toolkit”, можно использовать для json-преобразования данных;
JSONObject - EN, Android SDK
JSON in Android – Tutorial – EN, простой пример

3. Местохождение
Местонахождение - RU, описан класс Location
Android Location API – Tutorial – EN, простой пример
Using the Location Manager – EN, Android SDK

Похожие записи: