tym*_*ark 10 tizen tizen-web-app tizen-wearable-sdk tizen-studio
最近我开始为Tizen OS开发.我的应用程序仅针对可穿戴设备创建,仅适用于Samsung Gear Sport(Tizen 3.0 on board)的特定设备.该应用程序的主要目的是在很长一段时间内收集完整的传感器数据.我对心率和运动传感器(陀螺仪和加速度计)感兴趣.然后,这些数据将被发送到云服务器并进行分析.目前我正在考虑一个WEB应用程序,因为到目前为止我没有发现WEB API缺少本机API中存在的东西的证据.
但是Tizen OS有一个限制,到目前为止我无法克服.我的应用程序在一段时间后(大约10分钟左右)进入睡眠状态.这个应用程序应该在后台工作很长时间(最多10个小时)至关重要.为实现这一目标,我尝试了以下方法:
PRESSURE传感器.Tizen允许开始录制HRM但是在 - 之后没有录制NotFoundError: Failed to read recorded data.任何其他传感器给出TypeMismatchError.关于电池:以上都没有将电池耗尽到不可接受的程度.首先,我想找到一个解决方案,它能够为我提供所需的所有传感器数据,并且至少需要10个小时,并且没有任何漏洞.之后,如果事实证明这个解决方案耗尽了太多电池,我会考虑如何优化它.
而现在的问题是:是否有可能让我的应用程序保持10个多小时不停?
小智 6
如果您以本机 Service App API 3.0 为目标,请获取以下内容:
device_power_request_lock(POWER_LOCK_CPU, 0);
sensor_listener_set_option(listener, SENSOR_OPTION_ALWAYS_ON);
sensor_listener_set_attribute_int(listener, SENSOR_ATTRIBUTE_PAUSE_POLICY, SENSOR_PAUSE_NONE);
Run Code Online (Sandbox Code Playgroud)
并且不要忘记在 Manifest 中设置背景类别(传感器 + 位置,如果需要),否则 Tizen 将在大约 10 分钟后杀死您的应用程序。
当然,几乎所有这些都没有被正确记录......
我花了好几个星期试图找到这个问题的解决方案。我最接近有史以来不间断工作的应用程序是创建多包应用程序(也称为混合应用程序),其中包括:
所有应用程序都针对 Tizen API 2.3.1。这是至关重要的部分,因为 3.0 API 存在多个问题,例如操作系统意外终止应用程序或“电池使用量过多”提示,有时也会导致我的应用程序终止。Tizen OS 的有趣之处在于,当它由于过多的资源使用而杀死表盘应用程序时,手表的主屏幕只是纯黑色。不幸的是,针对 API 2.3.1 导致无法使用此版本之后添加的多个 API。
我使用的下一件事是device_power_request_lock(POWER_LOCK_CPU, 0);在所有本机服务应用程序中。我相信使用较旧的 API(2.3.1 而不是 3.0)可以让应用程序运行更长的时间而不会被系统杀死。我认为这是我利用的这个 Tizen OS 版本中的一个缺陷。
在 WEB 应用程序中,我使用了ScreenStateChangeListenertimetick 事件来检查服务应用程序是否正在运行。如果不是 -> 它是由 WEB 应用程序启动的。对于服务和表盘之间的通信,我使用了首选项侦听器 API。Watch face WEB app 负责检查哪些服务正在运行,哪些服务需要被唤醒或启动。
最后,我最终使用了 4 个与 WEB 应用程序打包在一起的本机服务应用程序。每个服务应用程序都有自己的用途,如文件系统、网络、监控等。多线程服务应用程序真的很难维护,并且经常因未知原因崩溃。
| 归档时间: |
|
| 查看次数: |
1562 次 |
| 最近记录: |