利用ADB命令截屏,并发送至指定邮箱

需求分析:
为满足对Android设备远程监控、故障排查或自动化报告生成等应用场景需求,本指南将指导你如何利用ADB(Android Debug Bridge)工具实现Android设备的截屏功能,并介绍如何将截屏结果通过远程通知的形式发送至指定邮箱。
关键词:ADB、截屏、远程通知、发送邮箱
准备工作

  1. 安装ADB
    确保你的电脑上已安装ADB工具。ADB是Android SDK的一部分,你可以从Android开发者官网下载最新版本的Platform Tools,其中包含了ADB。

  2. 启用开发者选项与USB调试
    在你的Android设备上,进入“设置” -> “关于手机”。
    连续点击“版本号”数次以启用开发者选项。
    返回“设置”界面,进入“开发者选项”,启用“USB调试”。

  3. 连接设备
    使用USB线将你的Android设备连接到电脑。
    在设备上确认以“文件传输”模式连接
    在设备上确认允许USB调试。

  4. 使用ADB命令确认是否连接成功。

adb devices

如下图显示,则代表连接成功。
USB连接设备成功
截屏操作
方案一:使用ADB命令截屏
打开命令行工具(Windows为CMD或PowerShell,Mac/Linux为Terminal),输入以下命令来截屏并保存到电脑:

adb shell screencap -p /sdcard/screenshot.png   #截屏
adb pull /sdcard/screenshot.png C:\path\to\your\directory\  # Windows示例  ,保存到电脑指定路径
# 或  
adb pull /sdcard/screenshot.png /path/to/your/directory/   # macOS/Linux示例

方案二:使用脚本自动化截屏

import os

"""
用adb 截取手机屏幕,并保存到指定文件夹中
案例参考链接:https://blog.csdn.net/afufufufu/article/details/119004326?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172448226216800188527332%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172448226216800188527332&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-119004326-null-null.142^v100^pc_search_result_base1&utm_term=adb%E6%88%AA%E5%B1%8F%E5%B9%B6%E4%BF%9D%E5%AD%98%E5%88%B0%E5%BD%93%E5%9C%B0&spm=1018.2226.3001.4187
"""

def Screen_cap():
    #点亮屏幕
    os.system("E:/platform-tools/adb shell input keyevent 26")
    print("屏幕已点亮")

    #截屏 并保存到手机上
    os.system("E:/platform-tools/adb shell screencap -p /sdcard/one.png")
    print("手机已截屏")

    #将截屏保存到电脑上
    os.system("E:/platform-tools/adb pull /sdcard/one.png E:/pyapp/ScreenCap/1.jpg")
    print("截屏已保存到电脑")

远程通知与发送至邮箱
方案一:使用脚本自动化发送邮箱,
1.脚本如下:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.header import Header
#没有上述库的,请使用PIP 自动化安装

def send_email():
    # 设置QQ邮箱的域名和端口
    smtp_server = 'smtp.qq.com'
    smtp_port = 587

    # 邮箱账号和授权码
    sender_email = '******@qq.com'
    password = '********'

    # 收件人邮箱
    receiver_email = '********@163.com'

    # 邮件内容
    subject = '测试邮件主题'
    body = '这是一封从Python通过QQ邮箱发送的包含图片的测试邮件。'

    # 创建一个MIMEMultipart邮件对象
    msg = MIMEMultipart()

    # 设置邮件头部
    msg['From'] = Header(sender_email)
    msg['To'] = Header(receiver_email)
    msg['Subject'] = Header(subject)

    # 添加文本内容
    msg.attach(MIMEText(body, 'plain', 'utf-8'))

    # 读取图片并添加到邮件中
    with open('E:/pyapp/ScreenCap/1.jpg', 'rb') as f:
        img = MIMEImage(f.read())
        # 可以设置图片的CID,用于在HTML中引用
        img.add_header('Content-ID', '<image1>')
        msg.attach(img)

    # 创建SMTP对象
    server = smtplib.SMTP(smtp_server, smtp_port)

    # 启用安全传输模式
    server.starttls()

    # 登录邮箱
    server.login(sender_email, password)

    # 发送邮件
    server.sendmail(sender_email, [receiver_email], msg.as_string())

    # 断开服务器连接
    server.quit()

    print("邮件发送成功")

方案二:使用第三方应用
你也可以考虑使用Tasker、MacroDroid等第三方应用来实现更复杂的自动化流程,这些应用通常提供了图形化界面,使得配置和使用更加直观。

注意事项
确保ADB版本与你的Android设备兼容。
保护好你的邮箱账号和密码,避免在不安全的脚本或应用中泄露。
考虑到隐私和安全因素,请谨慎选择发送截屏的时机和内容。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值