Есть ли способ узнать, не выполнено ли задание WorkManager из-за ограничения? - PullRequest
0 голосов
/ 18 октября 2019

Сейчас у меня есть несколько заданий на WorkManager, использующих это ограничение.

wifiConstraint = Constraints.Builder()
                .setRequiredNetworkType(NetworkType.UNMETERED)
                .build()

work_version = "2.2.0"
implementation "androidx.work:work-runtime-ktx:$project.work_version"

Устройство клиента, кажется, подключено к сети WiFi, но задание не отправляется (установлено значениеrepeatInterval: 30, TimeUnit.MINUTES) через 6 часов.

Эта сеть Wi-Fi является сетью предприятия с профилем конфигурации.

Существует ли способ узнать, не соответствует ли задание установленному ограничению и какиеограничение не встретилось?

Спасибо.

1 Ответ

0 голосов
/ 18 октября 2019

Вы не можете получить эту информацию непосредственно в WorkManager, но, предполагая, что это устройство работает на Android 6.0+ (API level23 +), вы можете получить некоторую информацию о базовом API-интерфейсе JobScheduler, используемом WorkManager.

Использованиекоманда:

adb shell dumpsys jobscheduler

С помощью этой команды вы сможете определить свою задачу.

Это даст вам огромный результат в следующих категориях.

  • Настройки
  • Зарегистрированные XX задания
  • Связь
  • Аварии
  • В режиме ожидания
  • Батарея
  • AppIdle
  • Контент
  • История заданий
  • Очередь ожидания

Если вы тестируете на Android 7.1 и выше, вы можете принудительно запуститьзапланированное задание с помощью следующей команды.

adb shell cmd jobscheduler run -f PACKAGE_NAME JOB_ID
...