¿Cómo verificar si la batería se está cargando o no en Android mediante programación?

El estado de carga puede cambiar tan rápido como se puede enchufar un dispositivo, por lo que es crucial monitorear el estado de carga para detectar cambios y modificar la frecuencia de actualización en consecuencia. El BatteryManager transmite una acción cada vez que el dispositivo está conectado o desconectado de la alimentación. Es importante recibir estos eventos incluso cuando la aplicación no se está ejecutando de manera significativa. Dichos eventos deberían afectar la frecuencia con la que inicia la aplicación para iniciar una actualización en segundo plano. Por lo tanto, debe registrar un BroadcastReceiver en el manifiesto para escuchar ambos eventos definiendo ACTION_POWER_CONNECTED y ACTION_POWER_DISCONNECTED dentro de un filtro de intención (filtro). kotlin

Charging or not

Paso 1: Crear un nuevo proyecto

Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Kotlin como lenguaje de programación.

Paso 2: trabajar con el archivo activity_main.xml

actividad_principal.xml Brindis actividad_principal.xml

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
  
    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="Click"
        />
  
</RelativeLayout>

Paso 3: trabajar con el archivo MainActivity.kt

Finalmente, vaya al archivo MainActivity.kt y consulte el siguiente código. MainActivity.kt

Kotlin

import android.content.Intent
import android.content.IntentFilter
import android.os.BatteryManager
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.Toast
  
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
  
        // Button onclick will display the status of charging
        val btn = findViewById<Button>(R.id.btn)
          
        btn.setOnClickListener {
  
              // Intent to check the actions on battery
            val batteryStatus: Intent? = IntentFilter(Intent.ACTION_BATTERY_CHANGED).let { ifilter ->
                applicationContext.registerReceiver(null, ifilter)
            }
  
            // isCharging if true indicates charging is ongoing and vice-versa
            val status: Int = batteryStatus?.getIntExtra(BatteryManager.EXTRA_STATUS, -1) ?: -1
            val isCharging: Boolean = status == BatteryManager.BATTERY_STATUS_CHARGING
                    || status == BatteryManager.BATTERY_STATUS_FULL
  
              // Display whatever the state in the form of a Toast
            if(isCharging) {
                Toast.makeText(applicationContext, "Charging", Toast.LENGTH_LONG).show()
            } else {
                Toast.makeText(applicationContext,"Not Charging", Toast.LENGTH_LONG).show()
            }
        }
    }
}

Salida: ejecutar en dispositivo físico

Controle el estado de la batería en la barra de estado.

Publicación traducida automáticamente

Artículo escrito por aashaypawar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *