Гаражный режим

Для того, чтобы обеспечить периоды простоя в транспортных средствах, Garage Mode поддерживает систему просыпается , так что рабочие места в JobScheduler ограничены с безделье может быть выполнены.

Что такое режим гаража?

На подключенных устройствах, таких как телефоны, пользователи полагаются на систему, чтобы гарантировать стабильность, актуальность и оптимизацию устройств. Для того, чтобы достичь этого состояния, то Android платформы обеспечивает время простоя окно , в течение которого приложение может выполнять задачи , когда пользователь не взаимодействует с устройством. Телефонный считается простаивает , когда пользователь не трогает его в течение длительного срока (60 минут или более) , и экран выключен. В отличие от телефона, когда автомобиль не используется, он выключен, это означает , что автомобиль не имеет время простоя окна. Режим «Гараж» обеспечивает простой в автомобиле.

Когда автомобиль выключается пользователем, система переходит в режим гаража. Когда автомобиль находится в режиме «Гараж», система включена, дисплей выключен, и выполняются незанятые задания в очереди JobScheduler. Для реализации Garage Mode см указания по внедрению устройств ниже.

Рекомендации по реализации устройства

Для того, чтобы активировать режим гаража, при выключении автомобиля, автомобиль HAL (VHAL) необходимо отправить AP_POWER_STATE_REQ с государственным SHUTDOWN_PREPARE с набором параметров в SHUTDOWN_ONLY или CAN_SLEEP .

Для государства SHUTDOWN_PREPARE быть эффективным, VHAL необходимо указать два параметра (состояние и дополнительный параметр) для AP_POWER_STATE_REQ команды. Это позволяет устройство ввода гараж режиму, который детектирует запланированную работу в JobScheduler и позволяет систему производства либо приостановить или закрыть , пока работа не будет завершена.

Как реализации устройства подключаются к платформе Android?

Для режима гаража инфраструктура запрашивает у VHAL продление времени отключения до тех пор, пока не будет превышена требуемая продолжительность или пока не будут выполнены все задания, после чего система будет отключена. При определенных обстоятельствах, определенных в CDD, реализации устройств могут завершить работу системы раньше. (Более подробную информацию о требованиях к совместимости Android см Android Определение документа совместимости (CDD) .) Если VHAL необходимо выключить систему до завершения Garage режиме, VHAL может выдавать SHUTDOWN_PREPARE с набором параметров в SHUTDOWN_IMMEDIATELY или SLEEP_IMMEDIATELY . Реализации устройства могут использовать эту функцию при определенных обстоятельствах только, как правило , когда ресурсы , необходимые для поддержания работы системы недоступны. Например, когда емкость аккумулятора недостаточна.

Гаражный режим

Как разработчики приложений работают с Garage Mode?

Приложения и сервисы не взаимодействуют напрямую с Garage Mode. Вместо этого приложения график работы в JobScheduler . Эти работы сдерживаются праздности будет выполняться во время Garage Mode.

В следующем коде показано, как запланировать выполнение задания в режиме гаража:

public class MyGarageModeJob extends JobService { ... }

Context context = ...;
int jobId = ...;

ComponentName myGarageModeJobName = new componentName(context,
                                                      MyGarageModeJob.class);

JobInfo.Builder infoBuilder = new JobInfo.Builder(jobId, myGarageModeJobName)
                    .setRequiresDeviceIdle(true);

// Example of an optional constraint:
infoBuilder.setRequiredNetworkType(NetworkType.NETWORK_TYPE_UNMETERED);

JobScheduler jobScheduler = (JobScheduler) context
                    .getSystemService(Context.JOB_SCHEDULER_SERVICE);

jobScheduler.schedule(infoBuilder.build());