O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Modo Garagem

Para proporcionar períodos de tempo ocioso em veículos, Modo de Garagem mantém o sistema acordado para que empregos no JobScheduler constrangidos com a ociosidade pode ser executado.

O que é o Modo Garagem?

Em dispositivos conectados, como telefones, os usuários contam com o sistema para garantir que os dispositivos estejam estáveis, atualizados e otimizados. Para atingir esse estado, a plataforma Android fornece um tempo ocioso janela durante o qual as aplicações podem executar tarefas quando o usuário não interage com o dispositivo. Um telefone é considerado ocioso quando o usuário não tocá-lo por um período prolongado (60 minutos ou mais) e a tela está desligada. Ao contrário de um telefone, quando um carro não está sendo usado, ele é desligado, o que significa que o carro não tem tempo ocioso janela. O Modo Garagem garante tempo ocioso em um carro.

Quando um carro é desligado pelo usuário, o sistema entra no Modo Garagem. Enquanto um carro está no Modo Garagem, o sistema é ligado, a tela é desligada e os trabalhos ociosos na fila do JobScheduler são executados. Para implementar Modo Garagem, consulte diretrizes de implementação de dispositivos abaixo.

Diretrizes de implementação de dispositivo

Para ativar o Modo Garagem, quando desligar o veículo, o HAL Veículo (VHAL) deve enviar AP_POWER_STATE_REQ com o estado SHUTDOWN_PREPARE com o conjunto de parâmetros para SHUTDOWN_ONLY ou CAN_SLEEP .

Para o estado SHUTDOWN_PREPARE para ser eficaz, o VHAL deve especificar os dois parâmetros (estado eo parâmetro adicional) para o AP_POWER_STATE_REQ comando. Isso permite que o dispositivo para entrar no modo Garage, que detecta programada empregos no JobScheduler e impede o sistema de processo de suspender ou encerrar até que os trabalhos são concluídos.

Como as implementações de dispositivos se conectam à estrutura do Android?

Para o Modo Garagem, a estrutura solicita que o VHAL estenda o tempo de desligamento até que a duração necessária seja excedida ou todos os trabalhos tenham sido executados, momento em que o sistema será desligado. Sob circunstâncias específicas definidas no CDD, as implementações de dispositivos podem desligar o sistema mais cedo. (Para detalhes sobre os requisitos de compatibilidade do Android, consulte o Android Documento Definição de Compatibilidade (CDD) .) Se o VHAL deve desligar o sistema antes de concluída Modo Garage, o VHAL pode emitir SHUTDOWN_PREPARE com o conjunto de parâmetros para SHUTDOWN_IMMEDIATELY ou SLEEP_IMMEDIATELY . Implementações de dispositivos podem usar este em circunstâncias específicas única, geralmente quando os recursos necessários para manter o sistema em funcionamento estão indisponíveis. Por exemplo, quando a capacidade da bateria é insuficiente.

Modo garagem

Como os desenvolvedores de aplicativos trabalham com o Garage Mode?

Os aplicativos e serviços não interagem diretamente com o Modo Garagem. Em vez disso, os aplicativos agendar trabalhos no JobScheduler . Esses trabalhos limitados pela ociosidade será executado durante o Modo de Garagem.

O código a seguir mostra como agendar um trabalho para ser executado durante o Modo Garagem:

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());