最近我开始为 Tizen OS 开发。我的应用程序仅为可穿戴设备创建,并且仅适用于 Samsung Gear Sport(板载 Tizen 3.0)的特定设备。该应用程序的主要目的是长时间收集完整的传感器数据。我对心率和一般的运动传感器(陀螺仪和加速度计)感兴趣。然后,这些数据将被发送到云服务器并进行分析。目前我正在考虑一个 WEB 应用程序,因为到目前为止我还没有发现任何证据表明 WEB API 缺少本机 API 中存在的东西。
但是到目前为止,我无法克服 Tizen OS 中的一个限制。一段时间(10 分钟左右)后,我的应用程序进入睡眠状态。至关重要的是,此应用应在后台长时间运行(最长 10 小时)。为此,我尝试了以下方法:
- 具有背景类别的普通 Tizen 应用程序:这种方法给出的数据仍然过于碎片化,例如我有 15 分钟的空洞,根本没有记录任何数据。有时甚至超过30分钟的洞。
- Tizen 警报 API:警报起到了让应用程序保持活动状态的作用,但每次警报时,应用程序都会被带到最前面,这不是一个可接受的解决方案。可以选择静默唤醒应用程序(使用应用程序控制),但它没有任何回调,因此必须提前安排所有警报。
- CPU_AWAKE 标志使系统显示“这个应用程序正在使用过多的能量”弹出窗口,如果在 10 分钟左右没有回答,系统仍然会杀死我的应用程序。
- Web Workers - 这个只是为了论证,Web Workers 与应用程序一起休眠
- 数据记录:我希望有类似于 Apple Health Kit 的东西,但我得到的东西根本不适用于 HRM。不知何故,它适用于
PRESSURE
传感器。Tizen 允许开始录制,HRM
但在 - 之后没有录制任何内容NotFoundError: Failed to read recorded data
。任何其他传感器都会给出TypeMismatchError
。 - Web Service 应用程序- 如文档所述,此应用程序需要三星的合作伙伴级认证,它也受背景限制的影响。
- 在设备设置中将“始终开启”标志设置为 true 的Watch Face方法。这个解决方案是我尝试过的最好的。表盘应用程序每分钟唤醒一次以更改时间,它还接收传感器数据。不幸的是,经过更多测试后发现记录的数据中有几个漏洞。
关于电池:以上都没有将电池耗尽到无法接受的程度。因此,首先我想找到一个解决方案,它可以提供我需要的所有传感器数据,至少 10 小时后尽可能频繁地提供,并且没有任何漏洞。在那之后,如果事实证明这个解决方案消耗了太多的电池,我会考虑如何优化它。
现在的问题是:是否可以让我的应用程序不间断地运行 10 多个小时?