Невозможно приостановить работу приложений с делегированием PACKAGE_ACCESS. - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь приостановить некоторые приложения на полностью управляемом устройстве (Android 7.1.2), используя метод setPackagesSuspended() ( ссылка на ссылку ). Согласно документации, первым параметром метода является 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 равно null

Кроме того, я не знаю, связано ли это с этим, но у меня есть несколько странных логов из Android Device Policy:

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].

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

1 Ответ

0 голосов
/ 29 января 2020

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...