我正在尝试构建一个本机 tizen 应用程序,它将检测活动并定期收集传感器数据以上传到远程 http 服务器。
为此,我开发了两件事。
1. 用于启动/停止的本机 UI 应用程序
2. 服务应用程序
我正在使用通过 wifi 上的远程设备管理器连接的samsung gear fit 2 pro在 tizen studio 中开发项目。
当我运行我的应用程序时,它在我的设备连接到 sdb 时工作正常。但是,当我断开设备连接时,它开始执行非确定性行为。例如,当它连接到 tizen studio 时,App 会记录每 60 秒的前 15 秒的数据,并在第 16 秒将该文件上传到服务器。它还从活动更改的回调开始。
但是,一旦设备断开连接,该间隔就无法正确维持,即传感器在 30 分钟后读取数据(这也会有所不同),甚至每秒收集数据的频率也会大大降低。但是如果 UI 应用程序在前台,那么一切都很好。
因此,如果我的应用程序处于前台或处于前台/后台并且设备连接到 pc 上的 sdb,则我的应用程序可以正常工作。
无论设备是否连接到 PC 上的 tizen sdb,如何让我的服务始终在后台运行?
NB 数据上传是使用 libcurl 完成的,它使用 5 秒的超时进行连接,失败时会跳过上传。使用了 Ecore 定时器,但定时器应该不是问题,因为我已经通过运行传感器进行了测试,但频率降低问题仍然存在。服务应用中的传感器启动选项如下
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]);