无法使用PACKAGE_ACCESS委托暂停应用程序

问题描述 投票:0回答:1

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

ComponentName:要检查的管理组件的名称;如果调用方是程序包访问委托,则为null。此值不得为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为空

此外,我不知道这是否相关,但是我有一些来自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].

感谢您的帮助。

android android-management-api
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.