Управляемые Android устройства застряли в режиме киоска, политика не применяется автоматически, невозможно открепить

#android #android-management-api #android-device-manager

#Android #android-management-api #android-device-manager

Вопрос:

В настоящее время мы используем android-management-api на более чем 100 устройствах, на которых действует одна и та же политика, и на них установлено приложение в режиме КИОСКА. Большую часть времени устройства остаются в режиме КИОСКА, но время от времени мы отключаем закрепление или применяем и обновляем, меняя значение FORCE_INSTALLED и увеличивая minVersionCode.

ПРОБЛЕМА — На прошлой неделе ОТКРЕПЛЕНИЕ приложения внезапно перестало работать (несколько месяцев работало нормально). Никакие обновления политики, которые мы нажимаем, не применяются, пытались удалить политику (не удается, потому что устройства ее используют), отключить приложение (ничего не происходит). Судя по всему, мы застряли с устройствами, которые закреплены в одном приложении и больше не могут быть откреплены.

Я читал, что применение обновления политики вручную может помочь, но не может этого сделать из-за закрепленного киоска. Перезапуск устройства не помогает.

Единственное решение, которое я могу придумать прямо сейчас, — это использовать adb для переустановки всех из них на заводе, но ручная переустановка более 100 устройств не является решением.

Ответ №1:

Рекомендуется установить для WINDOWED SystemUpdateType значение при использовании политики режима киоска. Установка окна обновления гарантирует установку обновлений в определенные сроки, даже если приложение работает в режиме киоска.

Следующая политика устанавливает окно обновления с 3:00 до 10:00. При настройке systemUpdate политики убедитесь, что startMinutes endMinutes значения и не совпадают и что ни одно из значений не установлено равным 0.

 "systemUpdate": {
    {
      "type": "WINDOWED",
      "startMinutes": 180, 
      "endMinutes": 600 
      ]
    }
  }
  

Чтобы проверить, когда политика в последний раз обновлялась на устройстве, вы можете использовать API devices.get и проверить поле lastPolicySyncTime или проверить appliedPolicyVersion , чтобы проверить версию политики на устройстве.

В качестве альтернативы systemUpdate политике вы также можете установить политику autoUpdateMode на AUTO_UPDATE_HIGH_PRIORITY . Установка этой политики обновит приложение, как только будет доступно обновление.

 {
  "packageName": string,
  ...
  "autoUpdateMode": “AUTO_UPDATE_HIGH_PRIORITY”
}
  

Комментарии:

1. AutoUpdateMode: AUTO_UPDATE_HIGH_PRIORITY с InstallType: KIOSK — худший опыт из-за мерцания экрана при попытке обновить приложение. Есть ли более элегантный способ обновить приложение в режиме киоска с помощью HIGH_PRIORITY без этой проблемы? Код минимальной версии не подходит, поскольку время от времени он нарушает политику