如何在Android Shell脚本中打开指定或默认浏览器访问URL?
实现Android Shell脚本优先用Lightning浏览器打开URL
刚好做过类似的需求!你当前的monkey命令只能启动Lightning浏览器的主界面,但没法直接打开指定URL对吧?要实现「优先用Lightning,没有就用默认浏览器打开URL」的需求,咱们得用Android的am start命令——它能通过系统Intent机制精准触发URL打开动作,还能指定优先应用。
基础版脚本(固定URL)
直接写死要打开的URL,脚本会先尝试用Lightning浏览器,失败则自动切换到默认浏览器:
#!/bin/sh # 替换成你要打开的目标URL TARGET_URL="https://example.com" # 1. 优先尝试用Lightning浏览器打开URL am start -a android.intent.action.VIEW -d "$TARGET_URL" -p acr.browser.barebones # 2. 检查上一条命令的执行结果:如果Lightning未安装/启动失败,调用默认浏览器 if [ $? -ne 0 ]; then am start -a android.intent.action.VIEW -d "$TARGET_URL" fi
进阶版脚本(支持动态传参)
如果需要脚本接受任意URL作为参数,不用每次修改代码,可以用这个版本:
#!/bin/sh # 检查是否传入了URL参数 if [ -z "$1" ]; then echo "请传入要打开的URL作为参数,示例:sh open_url.sh https://google.com" exit 1 fi TARGET_URL="$1" # 优先用Lightning浏览器打开 am start -a android.intent.action.VIEW -d "$TARGET_URL" -p acr.browser.barebones # 失败则 fallback 到默认浏览器 if [ $? -ne 0 ]; then am start -a android.intent.action.VIEW -d "$TARGET_URL" fi
关键参数说明
am start: Android Shell中用于启动组件、触发Intent的核心命令-a android.intent.action.VIEW: 指定Intent动作是「查看内容」,对应打开URL的标准动作-d "$TARGET_URL": 传入要打开的目标URL-p acr.browser.barebones: 指定优先使用的应用包名(Lightning浏览器的包名就是这个)$?: Shell中用于获取上一条命令的退出码,0表示执行成功,非0表示失败(比如应用未安装)
使用方法
- 把脚本保存为
open_url.sh - 给脚本添加执行权限:
chmod +x open_url.sh - 运行脚本:
- 基础版直接运行:
sh open_url.sh - 进阶版传入URL:
sh open_url.sh https://your-target-url.com
- 基础版直接运行:
对比你原来的monkey命令,这个方案的优势是直接打开指定URL,而不是只启动浏览器主界面,同时完美实现了「优先指定浏览器+默认浏览器兜底」的需求。
内容的提问来源于stack exchange,提问作者LeonidMew
相关产品推荐
相关产品推荐

