¿Cómo comprobar el tipo de carga (USB/AC) en Android mediante programación?

Al modificar la frecuencia de las actualizaciones en segundo plano para reducir el efecto de estas actualizaciones en la duración de la batería, verificar el nivel actual de la batería y el estado de carga es un excelente lugar para comenzar. El impacto en la duración de la batería al realizar actualizaciones de aplicaciones depende del nivel de la batería y del estado de carga del dispositivo. El efecto de realizar actualizaciones mientras el dispositivo se está cargando con CA es insignificante, por lo que, en la mayoría de los casos, maximice la frecuencia de actualización siempre que el dispositivo esté conectado a un cargador de pared. Por el contrario, si el dispositivo se está descargando, reducir la tasa de actualización ayuda a prolongar la duración de la batería. Del mismo modo, verificará el nivel de carga de la batería, lo que podría reducir la frecuencia de las actualizaciones, o incluso detenerlas, cuando la carga de la batería esté casi agotada. Existen 2 tipos de carga en cualquier smartphone:

  • Carga USB: Carga de bus serie universal: Carga desde salidas USB como el puerto USB de una computadora portátil: 500 miliamperios máx.
  • Carga de CA: Carga de corriente alterna: Carga desde un cargador de pared: 2 amperios máx.

kotlin

Types of charging

Acercarse

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 type 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
  
            // usbCharge is true when connected to usb port and same with the ac wall charger
            val chargePlug: Int = batteryStatus?.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1) ?: -1
            val usbCharge: Boolean = chargePlug == BatteryManager.BATTERY_PLUGGED_USB
            val acCharge: Boolean = chargePlug == BatteryManager.BATTERY_PLUGGED_AC
  
            // Display whatever the state in the form of a Toast
            when {
                usbCharge -> {
                    Toast.makeText(applicationContext, "USB Charging", Toast.LENGTH_LONG).show()
                }
                acCharge -> {
                    Toast.makeText(applicationContext, "AC 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. La secuencia de acciones:

  1. Inicialmente no conectado.
  2. Conectado al puerto USB del portátil.
  3. Desconectado.
  4. Conectado al cargador de pared de CA.
  5. Desconectado.

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 *