Netflix Android 电视应用 (com.netflix.ninja) 的电影深度链接

Movie Deeplink for Netflix Android TV app (com.netflix.ninja)

我已经看到了关于如何为 Netflix 移动版 Netflix 应用程序进行电影深层链接的解决方案,但对于该应用程序的 Android TV 版本,这些相同的解决方案似乎不起作用。

我已经尝试使用 action.VIEW 的 Intent 并通过正常的 Netflix URL 例如: http://www.netflix.com/watch/{movieId} 或使用 nflx:// 协议。

对于 android TV 应用程序,只有 nflx:// 协议似乎可以在打开应用程序时执行任何操作,然后它只停留在主菜单而不是播放电影。使用 http:// 协议在浏览器中打开 netflix,它只要求您下载 phone 或平板电脑应用程序。

有没有人能解决这个问题?

Netflix 最近添加了对 Android 电视的通用搜索支持,这意味着必须有某种方式来深入 link 节目和电影。所以我找到了一些你需要设置的标志才能正确打开显示页面。好像还有一些额外的东西可以用来自动开始播放。

public void OpenNFX() {
    Intent netflix = new Intent();
    netflix.setAction(Intent.ACTION_VIEW);
    netflix.setData(Uri.parse("http://www.netflix.com/watch/70291117"));
    netflix.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
    getActivity().startActivity(netflix);
}

我也想要,所以我花了一些时间来挖掘。它必须是可能的,因为 Netflix 系列和电影出现在 Android 电视启动器搜索结果中,并且可以从那里启动。显然,该意图中有额外的意图,它们是缺失的部分。最大的问题是没有简单的方法来捕获那些额外的意图(logcat 不显示额外的),但我仍然找到了一种方法。以下代码可以满足您的需求:

Intent netflix = new Intent();
netflix.setAction(Intent.ACTION_VIEW);
netflix.setData(Uri.parse("http://www.netflix.com/watch/70202141"));
netflix.putExtra("source","30"); // careful: String, not int
netflix.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK);
getActivity().startActivity(netflix);

或者,通过 adb:

adb shell am start -c android.intent.category.LEANBACK_LAUNCHER -a android.intent.action.VIEW -d http://www.netflix.com/watch/70202141 -f 0x10808000 -e source 30 com.netflix.ninja/.MainActivity

这样我就可以直接进入电影或连续剧,它会自动开始播放。要在没有自动播放的情况下启动到屏幕,请使用 /title/ 而不是 /watch/。 在 netflix ninja 3.3.1 build 1513 上针对 Android 手臂上的电视进行了测试。