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

Amazon Prime与Disney+Hotstar应用Deep Linking功能失效求助

Android Deep Link跳转Amazon Prime/Disney+Hotstar失效解决方案

问题复现

尝试通过Deep Link跳转Amazon Prime和Disney+Hotstar应用时出现以下问题:

  • 使用HTTP链接(如https://www.amazon.com/gp/video/detail/B01MSPI8JN/ref=atv_dp_share_cu_r)调用Intent.ACTION_VIEW,仅唤起默认浏览器,无对应应用选项
  • 测试amzn://协议链接(如amzn://video/detail/B01MSPI8JN/ref=atv_dp_share_cu_r)同样无法唤起目标应用
  • Netflix、Zee5等其他视频应用可正常接收跳转,且已确认目标应用已安装,Manifest中存在Deep Link配置,Android 11设备可通过「应用信息→默认打开→支持的链接」验证配置有效性

解决步骤

1. 添加Android 11+包可见性声明

Android 11及以上系统限制了应用对其他应用的可见性,需在AndroidManifest.xml中添加<queries>标签,声明目标应用的包名,确保系统能识别到这些应用:

<queries>
    <!-- Amazon Prime Video 包名 -->
    <package android:name="com.amazon.avod.thirdpartyclient" />
    <!-- Disney+ Hotstar 包名 -->
    <package android:name="com.hotstar.android" />
</queries>

2. 显式指定目标应用包名(可选)

如果系统仍未自动匹配到目标应用,可以在Intent中显式指定包名,强制唤起对应应用(需先检查应用是否安装,避免崩溃):

// 跳转Amazon Prime Video示例
String amazonPackage = "com.amazon.avod.thirdpartyclient";
Uri amazonUri = Uri.parse("amzn://video/detail/B01MSPI8JN");

Intent intent = new Intent(Intent.ACTION_VIEW, amazonUri);
intent.setPackage(amazonPackage);

// 检查应用是否已安装
PackageManager pm = getPackageManager();
List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
if (!resolveInfos.isEmpty()) {
    startActivity(intent);
} else {
    // 应用未安装时的降级处理:跳转浏览器
    Intent fallbackIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.amazon.com/gp/video/detail/B01MSPI8JN"));
    startActivity(fallbackIntent);
}

3. 验证Intent匹配情况

通过PackageManager.queryIntentActivities检查当前Intent能被哪些应用处理,排查是否真的匹配到目标应用:

Intent testIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.amazon.com/gp/video/detail/B01MSPI8JN"));
PackageManager pm = getPackageManager();
List<ResolveInfo> activities = pm.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY);

for (ResolveInfo info : activities) {
    Log.d("DeepLinkTest", "可处理的应用包名:" + info.activityInfo.packageName);
}

如果日志中没有目标应用的包名,说明系统未识别到应用的Deep Link配置,需再次检查包可见性声明或应用的Manifest配置。

4. 检查Deep Link格式正确性

  • Amazon Prime的官方Deep Link格式推荐使用amzn://video/detail/{ASIN},尽量避免携带多余的ref参数,可能影响匹配逻辑
  • Disney+ Hotstar的Deep Link格式通常为hotstar://play/{contentId},可通过逆向Manifest确认准确格式

总结

最常见的原因是Android 11+的包可见性限制,添加<queries>声明后大多能解决问题;若仍无效,可尝试显式指定包名或验证Deep Link格式是否准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:25:35