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

Economia de bateria de rotina

Android 10 introduz a opção de bateria cronograma de poupança de chamadas baseado em 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 interface do usuário Configurações de que o dispositivo está configurado corretamente, use a sua sobreposição de configuração para substituir o valor config_batterySaverScheduleProvider com o nome do pacote do seu aplicativo.

Por exemplo, se você quiser o pacote aplicativo com.google.android.apps.turbo para controlar a com base na configuração de rotina, em seguida, você deve definir este valor config:

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

Agora, o telefone deve mostrar o baseado na opção de rotina. Para verificar, construir sua imagem, flash-lo a um telefone, e navegue até Configurações> Battery> Battery Saver> Battery Saver agendamento. O baseado em opção rotina deve aparecer.

Padrão fora do limite

O novo config_dynamicPowerSavingsDefaultDisableThreshold campo especifica um nível de bateria em que as voltas do sistema off economizador de bateria, se ele foi ativado pela baseado em programador de rotina. O padrão do sistema é 80%, mas você pode alterá-lo.

Configuração de aplicativo

Permissões

As APIs necessárias para o aplicativo para ativar a economia de bateria do aplicativo são protegidos pela permissão android.permission.POWER_SAVER . Esta é uma assinatura / autorização privilegiada, então conceder ao aplicativo que você deseja ser capaz de bateria gatilho saver essa permissão em sua privapp-whitelist .

Um exemplo de concessão do privapp permissão para 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 baseado em rotina para funcionar corretamente, você deve pré-instalar o aplicativo na imagem do sistema com a permissão necessária. Dê apenas um aplicativo do POWER_SAVER permissão e deixe-a controlar a base em APIs de 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.

Ativando 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 base em opção de agendamento economizador de bateria rotina é ativado e o aplicativo chama esse método com um true valor para powerSaveHint , em seguida, transforma Battery Saver diante. Especifique disableThreshold de modo que se o aplicativo não pode se comunicar com o sistema, o sistema ainda sabe em que percentual da bateria é seguro desligar economizador 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. Veja a documentação da API para mais informações.

Para verificar as APIs são chamados com sucesso, consulta configurações globais para verificar se a configuração de apoio valor alterado de acordo com as chamadas de API .

Por exemplo, se o usuário selecionado o modo economizador 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ê, em seguida, chamar setDynamicPowerSaveHint(false, 25) , os valores devem ser:

automatic_power_save_mode: 1
dynamic_power_savings_disable_threshold: 25
dynamic_power_savings_enabled: 0

Você pode verificar esses valores usando este adb comando:

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 utilizador selecciona baseado em percentagem na economia de bateria IU programação e seleciona 15%. A economia de bateria deve ser ativada automaticamente SOMENTE ao atingir 15% da bateria.
  • O usuário seleciona baseado em rotina na UI bateria cronograma saver. Quando o aplicativo chama o API com true , voltas Battery Saver diante. Além disso, a economia de bateria é desligada automaticamente se o dispositivo for carregado até o nível de limite indicado e desconectado.
  • Nenhum o utilizador selecciona no IU bateria programação protetor. A economia de bateria NUNCA deve ser ativada automaticamente.
  • Se o aplicativo ativa a economia de bateria e o usuário substitui 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.