Приложение службы Tizen не работает нормально в фоновом режиме без подключения к Tizen Studio - PullRequest
0 голосов
/ 26 октября 2019

Я пытаюсь создать собственное приложение tizen, которое будет определять активность и периодически собирать данные датчика для загрузки на удаленный http-сервер.

Для этого я разработал две вещи.
1. Собственное приложение пользовательского интерфейса для запуска / остановки
2. Приложение-служба

Я занимаюсь разработкой проекта в студии tizenс samsung gear fit 2 pro , подключенным через удаленный диспетчер устройств через wifi.

Когда я запускаю свое приложение, оно отлично работает, пока мое устройство подключено к sdb. Но когда я отключаю устройство, оно начинает делать недетерминированное поведение. Например, когда приложение подключено к tizen studio, приложение записывает данные за первые 15 с каждые 60 с, а на 16-й секунде загружает этот файл на сервер. Он также запускается при обратном вызове изменения активности.
Но как только устройство отключается, этот интервал не поддерживается должным образом, т. Е. Датчики считывают данные через 30 минут (что также меняется), и даже частота сбора данных за каждую секунду уменьшаетсядраматически. Но если приложение UI находится на переднем плане, то снова все в порядке.

Итак, мое приложение работает нормально, если оно на переднем плане или на переднем плане / фоне, и устройство подключено к SDB на ПК.

Как я могу сделать так, чтобы моя служба работала всегда в фоновом режиме, независимо от того, подключено ли устройство к tizen sdb на ПК?

Примечание: загрузка данных выполняется с использованием libcurl, и для соединения используется тайм-аут 5 с, а при сбое загрузка пропускается. Ecore Timer используется, но таймер не должен быть проблемой, поскольку я проверял, всегда работал датчик, но проблема снижения частоты все еще сохраняется. Опции запуска датчика в сервисном приложении:

sensor_get_default_sensor(sensor_type, &sensor);
sensor_create_listener(sensor, &listener[sensor_type]);
sensor_listener_set_event_cb(listener[sensor_type], 1000 / SENSOR_FREQ, example_sensor_callback, vc);
sensor_listener_set_option(listener[sensor_type], SENSOR_OPTION_ALWAYS_ON);
sensor_listener_start(listener[sensor_type]);

1 Ответ

0 голосов
/ 06 ноября 2019

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

...