后台服务未在 Android Management API 中的完全托管设备上运行

Posted

技术标签:

【中文标题】后台服务未在 Android Management API 中的完全托管设备上运行【英文标题】:Background service not running on a fully managed device in Android Management API 【发布时间】:2021-06-16 16:51:24 【问题描述】:

我们在 android Management Api 中维护自己的企业。 我们维护的所有设备都是完全托管的设备。 在一项政策中,我们安装了一个安装类型为“Force_installed”的私有应用程序。 此应用需要与 Micro SD 卡进行持续时间同步。

但是,当设备进入睡眠状态时,同步会停止。 这就是为什么我们实现了从同一个应用程序启动的后台保活服务。

当我们向下滑动通知区域时,我们可以看到服务正在运行。 在 MDM 管理的 Android 设备上,它显示一个红色圆圈,从睡眠模式恢复后, 我们可以看到时间同步停止了。

在普通的 Android 设备上,它显示一个灰色圆圈。并且同步一直在运行。

我们可以做些什么来让它在 MDM 管理的 Android 设备上一直运行。 我们怀疑这与政策设置有关,但我们不确定是哪一个。 而且我们不确定如何实现它。

Here is the service running on a normal Android device

【问题讨论】:

【参考方案1】:

我不确定,但我认为您可以尝试通过策略为您的应用授予自动启动、后台或类似权限等权限


  "applications": [
    
      "packageName": "com.myapp.test",
      "installType": "FORCE_INSTALLED",
      "permissionGrants": [
        
          "permission": " android.permission.READ_CALENDAR",
          "policy": "GRANT"
        
      ]
    
  ]

参考:- https://developers.google.com/android/management/reference/rest/v1/enterprises.policies#PermissionPolicy

【讨论】:

【参考方案2】:

为确保保活服务应用程序始终运行,您可以向保活服务应用程序授予权限。

请参阅此link 了解更多信息。

我还尝试通过授予后台权限并使用不同的保活应用程序重新创建场景,并且该应用程序始终运行。

示例代码:


    "applications": [
    
      "packageName": "com.nstudio.keepalive",
      "installType": "FORCE_INSTALLED",
      "permissionGrants": [
        
          "permission": "android.permission_group.CALENDAR",
          "policy": "GRANT"
        
      ]
    
  ]

【讨论】:

以上是关于后台服务未在 Android Management API 中的完全托管设备上运行的主要内容,如果未能解决你的问题,请参考以下文章

Android Kotlin:定期工作管理器未在后台定期运行该功能

位图图像未在viewpager android中显示

当应用程序处于后台时,Android 2nd 推送通知有效负载数据未在附加中接收

Android服务在其仍处于活动状态时停止后台处理

Flutter Firebase:抬头通知未在后台显示

推送通知未在 Android 前台显示