[+] Device battery info
This commit is contained in:
@@ -0,0 +1,67 @@
|
|||||||
|
package org.hydev.wearsync
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.os.BatteryManager
|
||||||
|
import com.influxdb.annotations.Column
|
||||||
|
import com.influxdb.annotations.Measurement
|
||||||
|
|
||||||
|
@Measurement(name = "phone-battery")
|
||||||
|
data class BatteryInfo(
|
||||||
|
@Column val percent: Double,
|
||||||
|
@Column val temp: Int,
|
||||||
|
@Column val voltage: Int,
|
||||||
|
@Column val status: String?,
|
||||||
|
@Column val health: String?,
|
||||||
|
@Column val powerSource: String?,
|
||||||
|
) {
|
||||||
|
companion object {
|
||||||
|
fun Intent.batteryInfo(): BatteryInfo
|
||||||
|
{
|
||||||
|
val level = getIntExtra(BatteryManager.EXTRA_LEVEL, -1)
|
||||||
|
val scale = getIntExtra(BatteryManager.EXTRA_SCALE, -1)
|
||||||
|
val temp = getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1)
|
||||||
|
val voltage = getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1)
|
||||||
|
val status = getIntExtra(BatteryManager.EXTRA_STATUS, -1)
|
||||||
|
val health = getIntExtra(BatteryManager.EXTRA_HEALTH, -1)
|
||||||
|
val chargePlug = getIntExtra(BatteryManager.EXTRA_PLUGGED, -1)
|
||||||
|
|
||||||
|
val statusStr = when (status)
|
||||||
|
{
|
||||||
|
BatteryManager.BATTERY_STATUS_CHARGING -> "Charging"
|
||||||
|
BatteryManager.BATTERY_STATUS_DISCHARGING -> "Discharging"
|
||||||
|
BatteryManager.BATTERY_STATUS_FULL -> "Full"
|
||||||
|
BatteryManager.BATTERY_STATUS_NOT_CHARGING -> "Not Charging"
|
||||||
|
BatteryManager.BATTERY_STATUS_UNKNOWN -> null
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
|
||||||
|
val powerSource = when (chargePlug)
|
||||||
|
{
|
||||||
|
BatteryManager.BATTERY_PLUGGED_AC -> "AC"
|
||||||
|
BatteryManager.BATTERY_PLUGGED_USB -> "USB"
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
|
||||||
|
val healthStr = when (health)
|
||||||
|
{
|
||||||
|
BatteryManager.BATTERY_HEALTH_COLD -> "Cold"
|
||||||
|
BatteryManager.BATTERY_HEALTH_DEAD -> "Dead"
|
||||||
|
BatteryManager.BATTERY_HEALTH_GOOD -> "Good"
|
||||||
|
BatteryManager.BATTERY_HEALTH_OVER_VOLTAGE -> "Over-Voltage"
|
||||||
|
BatteryManager.BATTERY_HEALTH_OVERHEAT -> "Overheat"
|
||||||
|
BatteryManager.BATTERY_HEALTH_UNKNOWN -> null
|
||||||
|
BatteryManager.BATTERY_HEALTH_UNSPECIFIED_FAILURE -> null
|
||||||
|
else -> null
|
||||||
|
}
|
||||||
|
|
||||||
|
return BatteryInfo(
|
||||||
|
percent = level.toDouble() / scale,
|
||||||
|
temp = temp,
|
||||||
|
voltage = voltage,
|
||||||
|
status = statusStr,
|
||||||
|
health = healthStr,
|
||||||
|
powerSource = powerSource
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user