Obtener la capacidad real de la batería en Android usando Kotlin


Obtener la capacidad real de la batería en Android, no es tan fácil con la api que ofrece Google con Android, es tan básica que no se puede obtener directamente, pero usando refrexión se puede extraer el valor que a predesteblecido el fabricante.

Función getBatteryCapacity()

Con está función se puede obtener el valor del método getBatteryCapacity del PowerProfile el tamaño lo devuelve con Long y se refiere los mha de la capacidad que fue diseñada

@SuppressLint("PrivateApi")
fun getBatteryCapacity(): Long {
    val mPowerProfile: Any
    var batteryCapacity = 0.0
    val POWER_PROFILE_CLASS = "com.android.internal.os.PowerProfile"
    try {
        mPowerProfile = Class.forName(POWER_PROFILE_CLASS)
            .getConstructor(Context::class.java)
            .newInstance(context)
        batteryCapacity = Class
            .forName(POWER_PROFILE_CLASS)
            .getMethod("getBatteryCapacity")
            .invoke(mPowerProfile) as Double
    } catch (e: Exception) {
        e.printStackTrace()
    }
    return batteryCapacity.toLong()
}

Su uso es simple solo es llamar la función getBatteryCapacity() y vocarlo en una variable

val capacity = getBatteryCapacity()

Publicado por Codelaby

Mobile DevDesigner

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

A %d blogueros les gusta esto: