如何让 Flutter 应用程序在锁定/睡眠屏幕上运行(地理定位器和计时器生成器)?

Posted

技术标签:

【中文标题】如何让 Flutter 应用程序在锁定/睡眠屏幕上运行(地理定位器和计时器生成器)?【英文标题】:How to keep Flutter app running on lock/sleep screen (geolocator and timer builder)? 【发布时间】:2020-10-18 16:45:03 【问题描述】:

我的应用程序上有一个屏幕,当用户点击开始按钮时,它会跟踪位置 (geolocator) 和时间 (timer_builder)。当屏幕锁定/睡眠时,它会停止(或暂停)跟踪位置,但它应该在用户点击停止按钮时暂停。 谁能帮我解决这个问题?

我相信运行应用程序 on backgroundon lock screen 之间存在差异,因为我刚刚找到了有关使用 android_alarm_manager/background_fetch 在后台运行应用程序的主题(在这种情况下,大约每 15 分钟在后台唤醒应用程序不会也工作)。 一种解决方案是防止屏幕进入睡眠/锁定模式,但电池是问题。还有其他解决方案吗?

提前致谢!

【问题讨论】:

【参考方案1】:

我认为背景地理定位是一个难题。但是有一个项目,flutter_background_geolocation。它适用于调试模式。不幸的是,在发布模式下,您需要购买许可证。

【讨论】:

但锁屏是否被视为背景?看起来flutter_background_geolocation 比我需要的更复杂(而且我试图避免这个 300 美元的许可证哈哈我的货币太多了)【参考方案2】:

您可以使用 Flutter 创建后台任务,请参阅this article。不过没试过。

【讨论】:

以上是关于如何让 Flutter 应用程序在锁定/睡眠屏幕上运行(地理定位器和计时器生成器)?的主要内容,如果未能解决你的问题,请参考以下文章

Flutter:如何按需设置和锁定屏幕方向

如何在 Flutter 中锁定手机屏幕方向? (不在选项卡/ iPad 中)

锁定屏幕上的 FCM 通知 Flutter

如何让 iOS 8 小部件出现在锁定屏幕上

Android Galaxy S4 -- 在锁定屏幕上可见的活动

专心学LINUX:CentOS关闭屏幕自动锁定和睡眠