Files
Android-pyApi/test_windows.py
T
shuiyu1123 b3d75f8cc2 fix: 修复 Windows 兼容性问题
- 修复 setup.py 中 README.md 读取的编码问题 (UTF-8)
- 修复 system.py 中 errno 常量在 Windows 上不存在的问题
- 使用 getattr 安全获取平台特定的 errno 常量
- 测试全部通过 (24/24 能力可用)
2026-06-26 21:32:56 +08:00

146 lines
4.2 KiB
Python

"""
Windows 实现层测试脚本
"""
import sys
import platform
print("=" * 60)
print(f"平台: {platform.system()} {platform.release()}")
print(f"Python: {platform.python_version()}")
print("=" * 60)
# 测试基本导入
print("\n[1] 测试基本导入...")
try:
from android_pyapi import Intent, Uri, Bundle, JSONObject, ArrayList
print(" ✓ 基本 Android API 导入成功")
except Exception as e:
print(f" ✗ 基本导入失败: {e}")
# 测试 Intent
print("\n[2] 测试 Intent...")
try:
intent = Intent("android.intent.action.VIEW")
intent.setData(Uri.parse("https://example.com"))
intent.putExtra("key", "value")
print(f" ✓ Action: {intent.getAction()}")
print(f" ✓ Data: {intent.getData()}")
print(f" ✓ Extra: {intent.getStringExtra('key')}")
except Exception as e:
print(f" ✗ Intent 测试失败: {e}")
# 测试集合类
print("\n[3] 测试集合类...")
try:
lst = ArrayList()
lst.add("hello")
lst.add("world")
print(f" ✓ ArrayList size: {lst.size()}")
print(f" ✓ ArrayList[0]: {lst.get(0)}")
json = JSONObject()
json.put("name", "test")
json.put("version", 42)
print(f" ✓ JSONObject: {json.toString()}")
except Exception as e:
print(f" ✗ 集合类测试失败: {e}")
# 测试 Windows 实现层
print("\n[4] 测试 Windows 实现层...")
try:
from android_pyapi._windows_impl import (
IS_WINDOWS, get_windows_capabilities,
WindowsNetwork, WindowsPower, WindowsDisplay,
WindowsClipboard, WindowsProcess, WindowsLocation
)
print(f" ✓ IS_WINDOWS: {IS_WINDOWS}")
caps = get_windows_capabilities()
print(f" ✓ 能力检测: {sum(caps.values())}/{len(caps)} 项可用")
except Exception as e:
print(f" ✗ Windows 实现层导入失败: {e}")
import traceback
traceback.print_exc()
# 测试网络功能
print("\n[5] 测试网络功能...")
try:
ip = WindowsNetwork.get_ip_address()
print(f" ✓ IP 地址: {ip}")
connected = WindowsNetwork.get_connectivity()
print(f" ✓ 网络连通: {connected}")
wifi = WindowsNetwork.get_wifi_info()
print(f" ✓ WiFi SSID: {wifi.get('ssid', 'N/A')}")
except Exception as e:
print(f" ✗ 网络测试失败: {e}")
# 测试电源信息
print("\n[6] 测试电源信息...")
try:
battery = WindowsPower.get_battery_info()
print(f" ✓ 电池存在: {battery['present']}")
print(f" ✓ 电池电量: {battery['level']}%")
print(f" ✓ 电池状态: {battery['status']}")
cpu = WindowsPower.get_cpu_usage()
print(f" ✓ CPU 使用率: {cpu}%")
mem = WindowsPower.get_memory_info()
print(f" ✓ 内存使用: {mem['percent']}%")
except Exception as e:
print(f" ✗ 电源测试失败: {e}")
# 测试显示信息
print("\n[7] 测试显示信息...")
try:
w, h = WindowsDisplay.get_screen_size()
print(f" ✓ 屏幕尺寸: {w}x{h}")
x, y = WindowsDisplay.get_mouse_position()
print(f" ✓ 鼠标位置: ({x}, {y})")
except Exception as e:
print(f" ✗ 显示测试失败: {e}")
# 测试剪贴板
print("\n[8] 测试剪贴板...")
try:
test_text = "Android-pyApi 测试文本"
WindowsClipboard.write(test_text)
read_text = WindowsClipboard.read()
if read_text == test_text:
print(f" ✓ 剪贴板读写成功")
else:
print(f" ⚠ 剪贴板内容不匹配: '{read_text}'")
except Exception as e:
print(f" ✗ 剪贴板测试失败: {e}")
# 测试进程管理
print("\n[9] 测试进程管理...")
try:
procs = WindowsProcess.list_processes()
print(f" ✓ 进程数量: {len(procs)}")
sys_info = WindowsProcess.get_system_info()
print(f" ✓ 主机名: {sys_info['hostname']}")
print(f" ✓ 系统: {sys_info['platform']} {sys_info['windows_version']}")
except Exception as e:
print(f" ✗ 进程管理测试失败: {e}")
# 测试位置信息
print("\n[10] 测试位置信息...")
try:
loc = WindowsLocation.get_location()
print(f" ✓ 来源: {loc['source']}")
print(f" ✓ 经纬度: {loc['latitude']}, {loc['longitude']}")
if loc.get('city'):
print(f" ✓ 城市: {loc['city']}")
except Exception as e:
print(f" ✗ 位置测试失败: {e}")
print("\n" + "=" * 60)
print("测试完成!")
print("=" * 60)