O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Esta página foi traduzida pela API Cloud Translation.
Switch to English

Economia de bateria de rotina

O Android 10 apresenta uma opção de agendamento de economia de bateria chamada com base na rotina . Esta opção permite que um aplicativo escolhido pelo OEM forneça sinais ao sistema para um agendamento de economia de bateria mais inteligente. Esta opção requer configuração e é opcional de implementação.

Configuração do dispositivo

Especificação do provedor

Para notificar a IU de configurações que o dispositivo está configurado corretamente, use sua sobreposição de configuração para substituir o valor config_batterySaverScheduleProvider com o nome do pacote do seu aplicativo.

Por exemplo, se você deseja que o pacote do aplicativo com.google.android.apps.turbo controle a configuração baseada na rotina , defina este valor de configuração:

<string name="config_batterySaverScheduleProvider" translatable="false">
com.google.android.apps.turbo</string>

Agora o telefone deve mostrar a opção baseada na rotina . Para verificar, crie sua imagem, faça flash em um telefone e navegue para Configurações> Bateria> Economia de bateria> Programação de economia de bateria . A opção baseada na rotina deve aparecer.

Padrão fora do limite

O novo campo config_dynamicPowerSavingsDefaultDisableThreshold especifica um nível de bateria no qual o sistema desativa a economia de bateria, se tiver sido ativado pelo planejador baseado em rotina . O padrão do sistema é 80%, mas você pode alterá-lo.

Configuração de aplicativo

Permissões

As APIs necessárias para que o aplicativo ative a economia de bateria do aplicativo são protegidas pela permissão android.permission.POWER_SAVER . Esta é uma permissão de assinatura / privilegiada, portanto, conceda ao aplicativo que deseja ativar a economia de bateria esta permissão em sua privapp-whitelist .

Um exemplo de concessão de permissão privapp a um aplicativo:

<privapp-permissions package="com.google.android.apps.turbo">
   <permission name="android.permission.POWER_SAVER"/>
</privapp-permissions>

Se você não pré-conceder essa permissão para a versão do aplicativo na imagem do sistema, o aplicativo não poderá adquirir a permissão ou chamar as APIs corretamente. O sistema não fornece nenhum feedback além dos erros de permissão usuais, portanto, verifique se você pode chamar as APIs e observar seus efeitos.

Instalação

Para que a rotina funcione corretamente, você deve pré-instalar o aplicativo na imagem do sistema com a permissão necessária. Dê a apenas um aplicativo a permissão POWER_SAVER e permita que ele controle as APIs baseadas em rotina . Comportamento do recurso quando mais de um aplicativo tenta usar a permissão e APIs não são suportados e não especificados.

Acionando economia de bateria

APIs

Supondo que a configuração tenha sido bem-sucedida até o momento, o aplicativo OEM especificado na configuração deve ser capaz de chamar o método associado no PowerManager para acionar a economia de bateria:

public boolean setDynamicPowerSaveHint(boolean powerSaveHint, int disableThreshold)

Se a opção de programação baseada na economia de bateria de rotina estiver ativada e o aplicativo chamar esse método com um valor true para powerSaveHint , a economia de bateria será ativada. Especifique disableThreshold para que se o aplicativo não puder se comunicar com o sistema, o sistema ainda saiba em qual porcentagem da bateria é seguro desligar a economia de bateria.

Esta API está sujeita a substituições do usuário e suspensão da economia de bateria, da mesma forma que a economia de bateria automática com base em porcentagem. Consulte a documentação da API para obter mais informações.

Para verificar se as APIs são chamadas com êxito, consulte as configurações globais para verificar se a configuração de apoio mudou o valor de acordo com as chamadas da API .

Por exemplo, se o usuário selecionou o modo de economia de bateria de rotina e o aplicativo está chamando setDynamicPowerSaveHint(true, 10) , as configurações globais devem ter estes valores:

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 10
dynamic_power_savings_enabled: 1

Se você chamar setDynamicPowerSaveHint(false, 25) , os valores deverão ser:

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0

Você pode verificar esses valores usando este comando adb :

adb shell settings get global <setting-name>

Verificação

Não há uma maneira automatizada de verificar esse recurso porque não há como saber qual comportamento um OEM usará para decidir quando acionar o modo de economia de bateria de rotina. Os OEMs são, portanto, responsáveis ​​por testar sua integração para garantir que o comportamento atenda às expectativas. Em particular, verifique se o dispositivo pode cumprir as seguintes tarefas:

  • O usuário seleciona com base na porcentagem na IU do cronograma de economia de bateria e seleciona 15%. A economia de bateria deve ser ativada automaticamente SOMENTE ao atingir 15% da bateria.
  • O usuário seleciona com base na rotina da IU do cronograma de economia de bateria. Quando o aplicativo chama a API com true , a economia de bateria é ativada. Além disso, a economia de bateria é desligada automaticamente se o dispositivo for carregado até o nível de limite indicado e desconectado.
  • O usuário não seleciona nenhum na IU do cronograma de economia de bateria. A economia de bateria NUNCA deve ser ativada automaticamente.
  • Se o aplicativo ativar a economia de bateria e o usuário substituir manualmente a economia de bateria para desligá-la novamente (usando Configurações rápidas, Configurações, etc.), ele DEVE FICAR DESLIGADO até que o usuário o ligue novamente manualmente ou conecte o dispositivo