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

Compatível com dispositivos sem bateria

Esta página descreve como o Android lida com produtos que têm baterias removíveis ou sem baterias internas. Os últimos dispositivos são conectados a uma fonte de alimentação externa, como uma tomada CA ou porta USB em outro dispositivo.

Há uma bateria presente?

O código a seguir pode ser usado por aplicativos para detectar se o dispositivo tem uma bateria atualmente presente:

```
final Intent batteryInfo = registerReceiver(null, new
IntentFilter(Intent.ACTION_BATTERY_CHANGED));

return batteryInfo.getBooleanExtra(BatteryManager.EXTRA_PRESENT, true);
```

Comportamento do dispositivo sem bateria

Se o Android não detectar um dispositivo de bateria para o seu produto, os seguintes valores padrão relacionados à bateria serão usados. Observe que os padrões mudaram na versão do Android 9. Esta tabela mostra as diferenças.

Estado da bateria Android 9 e superior Android 8.1 e inferior
Presente falso verdade
Status desconhecido cobrando
Capacidade restante 0 100%
Saúde desconhecido Boa
Status online do carregador AC Não modificado forçado a verdade

Os fabricantes podem alterar as configurações padrão usando um kernel power_supply motorista ou HAL Saúde .

Android 9 e superior

O Android 9 remove alguns códigos anteriores para dispositivos sem bateria que, por padrão, fingiam que uma bateria estava presente, estava sendo carregada a 100% e estava em boas condições com uma leitura de temperatura normal em seu termistor.

A maioria das APIs-quadro que lidam com esta informação continuam a lidar com situações comuns o mesmo que anteriormente: o sistema será considerado como carga (isto é, não funcionando com bateria), e não serão considerados para ter uma bateria fraca. Se a interface do usuário desenhar o ícone da bateria, ele aparecerá com um ponto de exclamação e a porcentagem da bateria será mostrada como 0%. Mas o dispositivo não desligará devido à bateria fraca e trabalhos que requeiram carregamento ou bateria em boas condições serão agendados.

Android 8.1 e inferior

Porque o estado da bateria é desconhecido, as APIs quadro Android irá considerar o sistema para cobrar (ou, não sendo alimentado por bateria) e não será considerada para ter uma bateria fraca. Se a interface do usuário renderizar o ícone da bateria, ele aparecerá com um ponto de exclamação e a porcentagem da bateria será mostrada como 0%. Mas o dispositivo não desligará devido à bateria fraca, e trabalhos que requeiram carregamento ou bateria em boas condições serão agendados.

Implementação

O código padrão do Android 9 pode funcionar corretamente para o seu dispositivo, mas é recomendável fazer uma alteração no kernel ou no HAL para refletir com precisão o estado da bateria e da energia do seu produto, conforme descrito acima. Se Android 9 e superior não detectar uma classe de alimentação Linux dispositivo carregador, por padrão, todos os tipos de carregador (AC, USB, Wireless) terá estado offline. Se todos os carregadores estiverem off-line, mas nenhum dispositivo de bateria for detectado, o sistema ainda será considerado como carregando no sentido de que está funcionando com alimentação externa, não com bateria, conforme descrito anteriormente.

Se o seu produto não tem uma bateria e está sempre conectado a uma fonte de energia, é melhor para implementar um kernel Linux driver de carregador de classe power_supply para o AC ou fonte de alimentação USB que define sua linha sysfs atributo a true . Ou você pode configurar a propriedade online do carregador CA em um Health HAL para o seu dispositivo. Para fazer isso implementar um HAL Saúde, conforme descrito no Implementando Saúde 2.0 .

Este costume Saúde HAL implementa uma versão personalizada de Health::getHealthInfo() que modifica o valor de BatteryProperties.chargerAcOnline = true .

Para começar, copiar o arquivo hardware/interfaces/health/2.0/default/Health.cpp a sua própria implementação de Saúde HAL e modificá-lo de acordo com o 2.0 README Saúde .