Skip to content

adb shell

获取电池电量信息并提醒

bash
#!/bin/bash

# 初始化上次提醒的电量状态
last_alert_level=""

send_message(){
    echo $@

    pushkey=
    curl 'https://api2.pushdeer.com/message/push' -d "pushkey=$pushkey&text=$@"
}

while true; do
    # 获取当前电池电量
    battery_level=$(adb shell dumpsys battery | grep level | grep -o '[0-9]\+')



    # 检查是否成功获取电池电量
    if [[ -z $battery_level ]]; then
        send_message "错误: 无法获取电池电量,请确保adb有足够的权限。"
        exit 1
    fi

    # 检查电池电量并打印相应的提醒
    if [[ $battery_level -lt 40 && $battery_level -ge 20 && $last_alert_level != "low" ]]; then
        send_message "提醒: 电池电量低于40%,请尽快充电。"
        last_alert_level="low"
    elif [[ $battery_level -lt 20 && $last_alert_level != "critical" ]]; then
        send_message "提醒: 电池电量低于20%,请立即充电!"
        last_alert_level="critical"
    elif [[ $battery_level -ge 95 && $last_alert_level != "full" ]]; then
        send_message "提醒: 电池电量达到95%,充电完成。"
        last_alert_level="full"
    elif [[ $battery_level -ge 40 && $battery_level -lt 95 && $last_alert_level != "normal" ]]; then
        # 在电量介于40%和95%之间时,将状态重置为"normal"
        last_alert_level="normal"
    fi

    # 在5分钟后重新检查电池电量
    sleep 300
done