无法暂停具有 PACKAGE_ACCESS 授权的应用程序

Cannot suspend apps with the PACKAGE_ACCESS delegation

我尝试使用 setPackagesSuspended() 方法 (link to the reference) 在完全托管的设备 (Android 7.1.2) 上暂停一些应用程序。根据文档,该方法的第一个参数是 ComponentName:

ComponentName: The name of the admin component to check, or null if the caller is a package access delegate. This value must never be null.

尽管文档有点自相矛盾,但我将该值设置为 null,因为我的应用程序具有来自 Android 设备策略的特殊授权:

"applications": [
{
  "packageName": "our.business.app",
  "installType": "REQUIRED_FOR_SETUP",
  "defaultPermissionPolicy": "GRANT",
  "managedConfiguration": {
     xxx
   },
  "delegatedScopes": [
    "ENABLE_SYSTEM_APP",
    "PACKAGE_ACCESS"
  ],
  "accessibleTrackIds": [
    "4699927753xxx"
  ]
}
],

不幸的是,我在调用方法时遇到异常:

NullPointerException: ComponentName is null

除此之外,我不知道这是否相关,但我有一些来自 Android 设备策略的奇怪日志:

2020-01-22 15:38:27.835 7741-11774/? I/clouddpc: [CloudDpsClientImpl] Install app request, packagesToInstall: [our.business.app], packagesToUninstall: []
2020-01-22 15:38:33.217 7741-11774/? I/clouddpc: [PlaySyncUtils] Install error. Package name: [our.business.app]. Reason [TRANSIENT_ERROR]. Delay before retry: [0].
2020-01-22 15:38:33.219 7741-11780/? I/clouddpc: [PlaySyncUtils] Install error. Package name: [our.business.app]. Reason [TRANSIENT_ERROR]. Delay before retry: [0].

在此先感谢您的帮助。

setPackagesSuspended() 已添加到 API 级别 24(即 Android 7.0)中,它应该可以在我的设备上运行。 BUT DELEGATION_PACKAGE_ACCESS 已添加到 API 26(即 Android 8.0)中。这就是它在我的设备上不起作用的原因。

它在 API 级别 27 的设备上运行良好。