【发布时间】:2023-04-23 04:28:01
【问题描述】:
App 是一个 ionic4 电容器应用程序,它也使用了少量的 cordova 插件。我有一个与蓝牙设备相关的定时器功能,即使手机进入睡眠状态或处于锁定模式,它也必须保持运行。使用 cordova-background-mode 插件,该应用程序在后台运行,但一旦手机被锁定或处于睡眠状态,计时器就会停止工作。当屏幕恢复时,计时器从它停止的地方继续。
在我的案例中,我不能使用平台暂停和恢复事件,因为只是计算差异并加上时间会在我的用例中提供错误的值。
此应用与高度调整表配合使用,用户可以使用该应用调整高度并跟踪他站立的时间。 (当桌子达到一定高度时计时器开始运行)。高度调节台也有按钮来控制它的高度。
用例(为什么我不能使用平台恢复和暂停事件以及时间戳):
- 办公桌处于站立位置。计时器开始运行。
- 我锁定了我的手机(已创建时间戳)
- 我坐了1小时(桌子也有按钮来控制高度,所以这是指用户使用它来降低高度并且处于坐姿,但手机仍然处于锁定/睡眠状态)
- 我回到站立姿势 20 分钟
- 我解锁了我的手机。 (创建第二个时间戳)
- 现在它会显示 1:20 分钟的站立时间,即使我只站立了 20 分钟
即使手机被锁定,我还能如何让我的应用计时器运行?或者我应该使用 insomnia cordova 插件在计时器运行时让它保持清醒?当用户使用失眠插件手动锁定手机时会发生什么?它会保持清醒吗?
【问题讨论】:
-
我完全使用相同的插件在后台模式下运行。这仅在用户唤醒手机并浏览其他应用程序时才有效。手机锁定/睡眠时不起作用。 @RahulChokshi
-
桌子高度变化时是否会发送蓝牙通知?这就是你所需要的。使用核心蓝牙后台模式,您的应用程序可以接收该通知,并将在后台“唤醒”。然后它可以存储时间戳并返回睡眠 - 注意,如果适用于 iOS。我对安卓一无所知
-
是的,蓝牙通知会发送有关高度变化的通知,但是当手机锁定时它不起作用。没有尝试使用通知功能唤醒手机。我会试试的。谢谢。
标签: android ios cordova-plugins ionic4 capacitor