QPython 中文文档 下载 App

QPython 悬浮窗与二维码扫描——移动端自动化的入口配套

悬浮窗

悬浮窗(Floating Window)允许 QPython 在任何 App 之上显示 UI 界面——包括 Toast 弹窗、Dialog 对话框、FSW2 Activity 的浮窗形式、自定义悬浮小球等。

悬浮窗的实际用途

场景说明
跨 App 弹窗你的脚本正在后台运行,需要向用户弹出一个提示(如传感器触发报警)
控制面板在任何 App 上显示一个控制按钮,一键触发脚本
调试反馈在其他 App 使用过程中,显示实时调试信息
FSW2 Activity 覆盖FSW2 构建的界面可以作为悬浮窗覆盖在其他 App 上

权限前置

悬浮窗权限必须授予(SYSTEM_ALERT_WINDOW)。没有这条权限,所有弹窗都会静默失败。检查方式:

基本用法

from androidhelper import Android
droid = Android()

# 这个会在任何 App 上弹出 Toast
droid.makeToast("来自 QPython 的后台通知")

Toast 是最轻量的悬浮窗形式——不打断用户操作,几秒后自动消失。

自定义悬浮小球(部分版本支持)

某些 QPython 版本提供了自定义悬浮视图的 API,可以在屏幕上画一个小圆圈或半透明按钮,用户点击后触发动作。这在后台脚本场景下特别有用——脚本不用抢前台,用户想触发某个功能时点一下悬浮球就行。

具体 API 以实际版本为准。

二维码扫描

QPython 早期版本就把二维码扫描作为核心功能之一——用摄像头识别二维码内容。

基本用法

from androidhelper import Android
droid = Android()

result = droid.scanBarcode().result
print(f"扫描结果: {result}")

调用后会拉起相机界面,用户对准二维码扫描,扫描完成后返回解码后的字符串(通常是 URL 或文本)。

典型用途

场景一:扫码运行脚本

把 Python 脚本的下载链接编码成二维码,用 QPython 扫码后自动下载并运行:

import requests
from androidhelper import Android

droid = Android()
url = droid.scanBarcode().result

if url.startswith("http"):
    response = requests.get(url)
    # 把脚本保存到本地
    with open("downloaded_script.py", "w") as f:
        f.write(response.text)
    # 执行
    exec(response.text)

这个功能在团队协作场景下很有用——一个人写好脚本放到网上,其他人扫码就能拿到并运行。

场景二:扫码传数据

两台手机都装了 QPython,A 生成一个包含指令的二维码,B 扫描后执行:

# A 手机(生成二维码,需第三方库 qrcode)
import qrcode
data = "ACTION: start_monitoring"
img = qrcode.make(data)
img.save("action.png")

# B 手机(扫描并解析)
result = droid.scanBarcode().result
if result.startswith("ACTION:"):
    action = result.split(":")[1].strip()
    if action == "start_monitoring":
        droid.startSensingTimed(1, 1000)

二维码生成

QPython 内置了扫描但没有直接提供生成 API。生成二维码的方式:

  1. 通过 QPYPI 安装 qrcode 库(纯 Python,应该能装成功)
  2. 生成图片后用 droid.takePicture 或其他方式展示
import qrcode
from PIL import Image

img = qrcode.make("Hello QPython")
img.save("qr.png")
droid.makeToast("二维码已保存")

悬浮窗 + 二维码的组合场景

这两个功能组合起来可以做很多有意思的事情:

远程控制脚本

  1. 手机 A 上的 QPython 后台运行脚本,同时显示一个悬浮控制球
  2. 手机 B 扫 A 的屏幕二维码(包含远程控制 URL)
  3. B 的扫码结果通过网络传到 A,A 根据内容执行对应操作

扫码配置自动化

  1. 在电脑上生成一个包含自动化参数的二维码(如:开启传感器监听、采样频率 500ms、触发阈值 20)
  2. 手机 QPython 扫码后解析参数
  3. 脚本根据参数启动对应的自动化流程

权限需求

功能需要的权限
Toast / Dialog 弹窗悬浮窗(SYSTEM_ALERT_WINDOW)
FSW2 浮窗悬浮窗
二维码扫描相机 + 存储(保存扫码图片时)

小结

悬浮窗和二维码扫描是 QPython 移动端自动化能力的重要配套——悬浮窗让脚本可以在后台持续运行时与用户交互,二维码扫描让手机之间可以用图像快速传递指令和数据。两者组合起来可以做远程控制、扫码配置等高级玩法。

硬件与自动化部分到此结束。接下来是社区与资源,了解 QPython 的学习渠道和社区生态。