我正在为Tizen Wearable 2.3开发混合应用程序。对于该应用,加速度计和陀螺仪传感器数据被提取并以100Hz的频率写入本机服务应用中的文件。
然而,在某些试验中,我发现在关闭WiFi后几分钟后数据会丢失。例如,如果我记录数据10分钟,同时保持应用程序在后台(显示关闭)并在第五分钟关闭wifi,文件仅显示前5分钟的数据,其余数据不会写入文件。我怎么能阻止这种行为?
感谢。
答案 0 :(得分:0)
最后,发现我没有在CPU上获得device_power_request_lock
。
device_power_request_lock( POWER_LOCK_CPU, 0);
该函数锁定给定的锁定状态无限时间,并且不允许CPU进入睡眠状态,这导致数据丢失。在记录会话后解锁CPU:
device_power_release_lock(POWER_LOCK_CPU);
答案 1 :(得分:0)
作为上一个答案的补充,除了设置CPU锁定之外,还必须添加“传感器”的背景类别类型以防止tizen系统(我在Gear S3前沿使用tizen 3.0)杀死该应用程序由于能耗高,这是本文Is it possible to keep Tizen application alive non stop中提到的一个答案。
转到tizen-manifest.xml >>高级>>背景类别>>添加类别类型“传感器”。
在我的案例中,刚开始时,我仅将CPU锁定设置为开,并且传感器确实在后台连续记录数据。但是在启动应用程序不到十分钟的时间里,tizen系统弹出了一个窗口,询问诸如“ XXX应用程序消耗大量能量,您要关闭它”之类的信息。有趣的是,当屏幕仍为黑色时,没有振动作为通知。我几乎没有偶然发现此弹出窗口。如果您选择保持应用程序运行并认为一切都很好,那么您完全错了。系统会不时(大约10分钟)执行相同的操作,并且如果您一次都没有注意到,则您的应用程序将被杀死。 tizen文档确实是一团糟,而且大多数情况下,您只能通过试错和在线帖子的帮助来找出问题。