Ionic 后台模式无法正常工作,离子应用程序在5分钟后休眠

ngynwnxp  于 2022-12-09  发布在  Ionic
关注(0)|答案(2)|浏览(203)

我已经创建了一个带有电容器的离子应用程序,它应该每分钟将GPS坐标发送到一个API。这通常是可行的,但当涉及到屏幕锁定时的工作时,它会变得很麻烦。
现在,我已经包括了cordova后台模式和ForegroundService。然而,它仍然会在5分钟后停止。

this.backgroundMode.disableWebViewOptimizations();
this.backgroundMode.disableBatteryOptimizations();

但毫无结果。
我甚至手动关闭了设置中的电池优化。
我忽略了什么?

8qgya5xd

8qgya5xd1#

那个插件坏了。我有很多失败的尝试,使它工作,但失败了。
我找到的唯一解决方案是改用this One。即使屏幕锁定几个小时,它也能正常工作。

ercv8c1e

ercv8c1e2#

如果有人需要一个解决方案,这与android 10 +电容器+ native backgrounde mode

if (this.platform.is('android')) {

  this.platform.ready().then(() => {
    this.backgroundMode.enable();
    this.backgroundMode.setEnabled(true);
    this.backgroundMode.on('activate').subscribe(() => {
      this.backgroundMode.disableWebViewOptimizations();
      this.backgroundMode.disableBatteryOptimizations();
    });
    this.backgroundMode.disableBatteryOptimizations();
  });

  const timer = 3 * 60 * 1000; // three minutes

  setInterval(() => {
    this.backgroundMode.wakeUp();
  }, timer);
}

还在清单中添加:

<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_SERVICE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

相关问题