Невозможно приостановить приложения с делегированием PACKAGE_ACCESS

Я пытаюсь приостановить работу некоторых приложений на полностью управляемом устройстве (Android 7.1.2) с помощью метода setPackagesSuspended() (ссылка на ссылку). Согласно документации, первым параметром метода является ComponentName:

ComponentName: имя компонента администратора, который нужно проверить, или 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 имеет значение 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].

Заранее спасибо за помощь.


person Florian    schedule 22.01.2020    source источник


Ответы (1)


setPackagesSuspended() был добавлен в API уровня 24 (т.е. Android 7.0), который должен работать на моем устройстве. НО DELEGATION_PACKAGE_ACCESS был добавлен в API 26 (т.е. Android 8.0). Вот почему это не работает на моем устройстве.

Он хорошо работает на устройстве с уровнем API 27.

person Florian    schedule 29.01.2020