断电充电操作(adb+wifi)

在这里插入图片描述近期受控于手机没电充电频繁的影响下产生了以下内容,内容很简陋但是能实现需求。

实现了通过 ADB 与 Wi-Fi 相结合的方式来便捷地连接手机,并对手机的断电充电操作进行有效的控制。

在这一过程中,充分利用了 ADB 强大的调试功能和 Wi-Fi 稳定的连接特性,能够更加灵活、自由地管理手机的充电状态。无论是在家庭、办公还是其他场所,只要手机与控制设备处于同一 Wi-Fi 网络环境下,即可轻松实现对手机充电的精准控制,极大地提升了用户体验,为手机充电管理带来了全新的解决方案

import subprocess
import time

# 定时查询的时间间隔(秒)
interval = 60 * 60 * 60  # 例如,每分钟查询一次

# 定义存储devices
devices = []

# 存储每台手机的充电状态标志
phone_charged_status = {}

# 获取有多少个手机连接到电脑
def get_connected_phone_count():
    """
    使用 ADB 获取连接到电脑的手机数量
    """
    result = subprocess.run(['adb', 'devices'], capture_output=True, text=True)
    if result.returncode != 0:
        print("获取连接的设备失败")
        return None
    output = result.stdout.split('\n')[1].split('\t')[0]
    devices.append(output)
    return devices


#  获取手机电量
def get_battery_level(phone_id):
    """
    使用 ADB 获取手机电量
    """
    result = subprocess.run(['adb', '-s', f'{phone_id}', 'shell', 'dumpsys', 'battery'], capture_output=True, text=True)
    if result.returncode != 0:
        print("获取电量失败")
        return None
    output = result.stdout
    # 从输出中提取电量信息
    for line in output.split('\n'):
        if 'level' in line:
            return int(line.split(':')[1].strip())
    return None


# 开始充电
def enable_charging(phone_id):
    """
    允许手机充电
    """
    subprocess.run(['adb', '-s', f'{phone_id}', 'shell', 'dumpsys', 'battery', 'set', 'status', '2'])


# 停止充电
def disable_charging(phone_id):
    """
    停止手机充电
    """
    subprocess.run(['adb', '-s', f'{phone_id}', 'shell', 'dumpsys', 'battery', 'set', 'status', '1'])


# 获取连接到电脑的手机数量
connected_phone_count = get_connected_phone_count()

#  初始化手机充电状态
for i in connected_phone_count:
    phone_charged_status[i] = False  # 初始化为 False

if __name__ == '__main__':

    while True:
        for phone_id in connected_phone_count:
            battery_level = get_battery_level(phone_id)
            if battery_level is not None:
                if battery_level == 100 and not phone_charged_status[phone_id]:
                    print(f"手机 {phone_id} 电量已充满,停止充电...")
                    # 调用停止充电的函数
                    disable_charging(phone_id)
                    phone_charged_status[phone_id] = True
                elif battery_level <= 10:
                    print(f"手机 {phone_id} 电量未满,继续充电...")
                    # 调用继续充电的函数
                    enable_charging(phone_id)
                    phone_charged_status[phone_id] = False
                else:
                    print(f"手机 {phone_id} 当前电量:{battery_level}%")
        time.sleep(interval)

在这里插入图片描述
只实现了基础的断电充电操作,其他的内容就需要考各位自己进行努力了,┏(^0^)┛

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值