Files
xiaoli-cli/plugins/operit_scripts/system_info.py
T
shuiyu67 f7f7033e57 feat: 新增 3 个 Operit 安卓 API 示例脚本 (全链路验证通过)
- system_info.py: Environment 存储目录 + Build 构建信息 + Log 日志 + platform (转译层核心 API)
- file_manager.py: Environment 外部存储 + 列目录/写文本/读文本 (真实文件系统操作)
- intent_builder.py: Intent ACTION_VIEW/ACTION_SEND + Uri 解析 + putExtra (组件通信)
- 全链路验证: list 识别 4 脚本 7 工具; run 全部 success (含 Log I/W 输出)
- 配套修复 android_pyapi (Intent.EXTRA_TEXT 挂载, 已推送 Gitee e2f78f3)
2026-08-07 11:24:34 +08:00

79 lines
2.7 KiB
Python

# METADATA
# {
# "name": "system_info",
# "display_name": {
# "zh": "系统信息查看器",
# "en": "System Info Viewer"
# },
# "description": {
# "zh": "通过 Android API 转译层获取系统信息:存储目录、构建信息、平台环境,并用 Log 输出日志。",
# "en": "Get system info via Android API translation layer: storage dirs, build info, platform. Log via android.util.Log."
# },
# "category": "System",
# "tools": [
# {
# "name": "get_info",
# "description": {
# "zh": "获取系统信息",
# "en": "Get system info"
# },
# "parameters": []
# }
# ]
# }
import platform
import sys
TAG = "SystemInfo"
def getErrorMessage(error):
return str(error) if error else "unknown"
def getErrorStack(error):
return traceback.format_exc()
async def wrap(func, params):
try:
result = await func(params)
complete({"success": True, "message": "操作成功", "data": result})
except Exception as error:
console.error(f"Error: {getErrorMessage(error)}")
complete({"success": False, "message": getErrorMessage(error), "error_stack": getErrorStack(error)})
async def get_info(params):
"""通过 Android API 转译层采集系统信息"""
try:
info = {
"storage_external": Environment.getExternalStorageDirectory(),
"storage_data": Environment.getDataDirectory(),
"storage_root": Environment.getRootDirectory(),
"storage_public_pictures": Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),
"build_brand": getattr(Build, "BRAND", "unknown"),
"build_model": getattr(Build, "MODEL", "unknown"),
"build_version": getattr(Build, "VERSION", {}).get("RELEASE", "unknown") if isinstance(getattr(Build, "VERSION", {}), dict) else "unknown",
"os_name": os.name,
"sys_platform": sys.platform,
"python_version": platform.python_version(),
"python_platform": platform.platform(),
"sdcard_mounted": Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED,
}
Log.i(TAG, f"采集完成: external={info['storage_external']}")
complete({"success": True, "message": "系统信息采集完成", "data": info})
return info
except Exception as error:
console.error(f"{TAG} 错误: {getErrorMessage(error)}")
complete({"success": False, "message": f"采集失败: {getErrorMessage(error)}", "error_stack": getErrorStack(error)})
raise
async def get_info_wrapper(params):
await wrap(get_info, params)
exports.get_info = get_info_wrapper