You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让ADB命令模拟真实DeepLink的跳转行为?

解决方案:模拟真实App Links行为的ADB命令

普通的adb shell am start -d命令会触发隐式Intent匹配,系统会列出所有支持该URL的应用,因此无论DeepLink是否验证都会弹出选择框。要模拟用户点击URL时的真实行为(验证通过直接跳应用,未验证则打开浏览器),需要添加参数模拟来自信任来源的Intent请求,具体如下:

核心命令:模拟浏览器发起的跳转

使用--calling-package参数指定浏览器包名,模拟浏览器打开URL的场景(系统会自动应用App Links验证规则):

adb shell am start -d "https://www.airbnb.co.uk/rooms/48033927" --calling-package "com.android.chrome"
  • 如果目标应用已完成该域名的App Links验证,系统会直接跳转至应用内对应页面;
  • 如果未验证,系统会直接打开指定的浏览器(Chrome)加载该URL,不会弹出应用选择框。

你可以根据测试设备上的默认浏览器替换包名:

  • Google Chrome: com.android.chrome
  • 系统默认浏览器(部分设备): com.google.android.webview 或 com.android.browser

额外验证:确认App Links状态

在测试前,可先用以下命令确认应用的App Links验证状态:

adb shell pm get-app-links --user cur <你的应用包名>

关注输出中的verified字段(true表示已验证)和userSetDefault字段(true表示用户手动设置为默认)。

为什么普通命令无效?

普通的am start -d没有指定调用来源,系统会将其视为“匿名”Intent请求,因此会触发所有匹配该URL的应用展示选择框,忽略App Links的验证规则。只有当请求来自浏览器等信任来源时,系统才会检查应用是否已验证该域名,从而执行自动跳转或打开浏览器的逻辑。

内容的提问来源于stack exchange,提问作者Elye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 13:09:30