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
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