适用于Netflix Android电视应用的电影Deeplink(com.netflix.ninja)

时间:2016-02-22 14:50:20

标签: android-intent deep-linking netflix android-tv

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

我尝试过使用带有action.VIEW的Intent并传递正常的Netflix网址,例如: http://www.netflix.com/watch/ {movieId}或使用nflx://协议。

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

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

2 个答案:

答案 0 :(得分:4)

我想要一样,所以我花了一些时间挖掘。它必须是可能的,因为Netflix系列和电影出现在Android TV启动器搜索结果中,并且可以从那里启动。显然,在这个意图中有意图附加物,它们是缺失的部分。最大的问题是没有简单的方法来捕获那些意图额外的东西(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 for Android TV。

答案 1 :(得分:0)

Netflix最近为Android TV添加了通用搜索支持,这意味着必须有一些方式来深入链接到节目和电影。所以我发现你需要设置一些标志来正确打开显示页面。似乎还有额外的东西可用于自动开始播放。

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);
}