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)
This commit is contained in:
1 parent
a71daf32c6
commit
f7f7033e57
3 files changed
+268
No files matched your search
@@ -0,0 +1,78 @@
|
||||
# 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
|
||||
Reference in new issue
Block a user