关闭 wifi 后,Tizen 可穿戴传感器数据在后台丢失
Tizen wearable sensor data loss in background after wifi is switched off
我正在为 Tizen Wearable 2.3 开发混合应用程序。对于应用程序,加速度计和陀螺仪传感器数据被提取并以 100Hz 的频率写入本地服务应用程序中的文件。
但是,在某些试验中,我发现关闭 WiFi 几分钟后数据丢失。例如,如果我记录数据 10 分钟,同时将应用程序保持在后台(显示关闭)并在第五分钟关闭 wifi,文件仅显示前 5 分钟的数据,其余数据不会写入文件.我怎样才能阻止这种行为?
谢谢。
终于发现我在CPU上没有拿到device_power_request_lock
。
device_power_request_lock( POWER_LOCK_CPU, 0);
该函数无限期地锁定给定的锁定状态,并且不允许 CPU 进入导致数据丢失的睡眠状态。录制会话后解锁 CPU:
device_power_release_lock(POWER_LOCK_CPU);
作为对之前答案的补充,除了设置CPU锁外,还需要添加'sensor'的Background Category类型来防止tizen系统(我使用的是tizen 3.0 Gear S3 frontier) 避免因高能耗而杀死应用程序,如本 post 中提到的一个答案。
转到 tizen-manifest.xml >> 高级 >> 后台类别 >> 添加类别类型 'sensor'。
在我的例子中,一开始我只设置了CPU锁定,传感器确实在后台持续记录数据。但是应用程序启动不到十分钟,tizen 系统弹出了一个 window 询问类似 'XXX application consumes lots of energy, do you want to close it' 的内容。有趣的是,当屏幕仍然是黑色时,没有振动作为通知。我几乎偶然发现了这个弹出窗口。如果您选择保留应用 运行 并认为一切都很好,那您就大错特错了。系统会不时地(10 分钟左右)做同样的事情,如果有一次你没有注意到,你的应用程序就会被杀死。 tizen 文档真的是一团糟,大多数情况下你只能通过反复试验并借助在线 posts.
来解决问题。
我正在为 Tizen Wearable 2.3 开发混合应用程序。对于应用程序,加速度计和陀螺仪传感器数据被提取并以 100Hz 的频率写入本地服务应用程序中的文件。
但是,在某些试验中,我发现关闭 WiFi 几分钟后数据丢失。例如,如果我记录数据 10 分钟,同时将应用程序保持在后台(显示关闭)并在第五分钟关闭 wifi,文件仅显示前 5 分钟的数据,其余数据不会写入文件.我怎样才能阻止这种行为?
谢谢。
终于发现我在CPU上没有拿到device_power_request_lock
。
device_power_request_lock( POWER_LOCK_CPU, 0);
该函数无限期地锁定给定的锁定状态,并且不允许 CPU 进入导致数据丢失的睡眠状态。录制会话后解锁 CPU:
device_power_release_lock(POWER_LOCK_CPU);
作为对之前答案的补充,除了设置CPU锁外,还需要添加'sensor'的Background Category类型来防止tizen系统(我使用的是tizen 3.0 Gear S3 frontier) 避免因高能耗而杀死应用程序,如本 post
转到 tizen-manifest.xml >> 高级 >> 后台类别 >> 添加类别类型 'sensor'。
在我的例子中,一开始我只设置了CPU锁定,传感器确实在后台持续记录数据。但是应用程序启动不到十分钟,tizen 系统弹出了一个 window 询问类似 'XXX application consumes lots of energy, do you want to close it' 的内容。有趣的是,当屏幕仍然是黑色时,没有振动作为通知。我几乎偶然发现了这个弹出窗口。如果您选择保留应用 运行 并认为一切都很好,那您就大错特错了。系统会不时地(10 分钟左右)做同样的事情,如果有一次你没有注意到,你的应用程序就会被杀死。 tizen 文档真的是一团糟,大多数情况下你只能通过反复试验并借助在线 posts.
来解决问题。