如何使用Python打开Chromebook设备上的应用程序?
实现步骤
第一步:确认对应应用的启动命令
ChromeOS的Linux容器支持直接调用系统级的应用(包括原生Chrome应用、PWA、安卓应用),你可以先在Linux终端中测试启动命令,确认可用后再写入Python代码:
- 若是PWA/网页应用:直接使用
xdg-open 应用对应的网页地址即可,ChromeOS会自动调用已安装的PWA打开,比如打开Messenger PWA的命令是xdg-open https://www.messenger.com - 若是Chrome原生应用:可通过检索desktop文件获取启动命令,执行以下命令查找对应应用的配置:
grep -i "应用关键词(如messenger)" /usr/share/applications/*.desktop ~/.local/share/applications/*.desktop
找到对应文件后查看Exec=开头的行,后面的内容就是启动命令 - 若是安卓应用:先开启ChromeOS的ADB调试,执行
adb shell pm list packages | grep 应用关键词获取应用包名,再打开应用后执行adb shell dumpsys window | grep mCurrentFocus获取启动Activity,最终启动命令格式为am start -n 包名/Activity名
第二步:编写Python调用逻辑
使用Python标准库的subprocess模块执行系统命令即可,示例代码如下:
import subprocess # 配置命令与启动指令的映射关系,可自行扩展 APP_LAUNCH_MAP = { "messenger": "xdg-open https://www.messenger.com", "chrome": "google-chrome", "local_files": "xdg-open ~/Documents" } def launch_app(command: str) -> str: if command not in APP_LAUNCH_MAP: return "未匹配到对应应用" try: # 后台执行启动命令,不阻塞主程序运行 subprocess.Popen( APP_LAUNCH_MAP[command], shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL ) return "应用已启动" except Exception as e: return f"启动失败:{str(e)}" # 机器人接收命令后调用该函数即可,比如接收用户输入的messenger # print(launch_app("messenger"))
注意事项
- 所有启动命令请先在Linux终端中手动执行验证,确认可以正常打开应用后再写入映射表
- 若调用安卓应用,需要先在ChromeOS设置中开启Linux对ADB的访问权限
- 不需要额外安装第三方依赖,Python标准库即可完成所有操作
内容的提问来源于stack exchange,提问作者Andrew Killillay
相关产品推荐
相关产品推荐

