开发者控制台

步骤2: 设置示例Fire TV应用程序 (VSK Fire TV)

步骤2: 设置示例Fire TV应用程序 (VSK Fire TV)

大多数集成VSK的开发者已经拥有稳健的Fire TV应用。但是,许多时候开发者希望探索VSK工作流程并查看传入的Alexa指令,而不必在自己的应用中进行更改。我们提供了一个基本Fire TV应用,该应用已经进行了一些配置和设置,可以显示有效的视频技能。您可以使用这个示例应用来探索VSK,然后,在您探索完VSK的工作原理之后,对您的实际应用重新执行同样的过程。

或者如果需要,您也可以直接更新实际的Fire TV应用,而不是先编辑示例应用。此处的文档提供了可适应这两种情况的混合流程 - 更新示例应用或使用您自己的应用。

关于具有VSK的示例Fire TV应用

该示例应用是基本的Android应用,整合了有效视频技能以播放流媒体视频。为此,该应用整合了Alexa客户端库和Amazon Device Messaging (ADM)。完成配置后,当您要求Alexa按标题提供视频时,应用会播放视频。您仍需要使用您的程序包名称和视频技能配置示例应用。

示例应用将允许您查看推送到应用的指令。此预览可以让您更多地了解视频技能将如何与您的应用互动。示例应用不显示有关如何处理指令以在应用中执行特定操作的逻辑 - 您需要根据自己的独特代码自行确定大部分逻辑。

此外,此示例应用旨在作为文档的配套物使用,而不是作为您自己应用的起点或模板。几乎每个集成了VSK的视频合作伙伴都已经拥有自定义开发的应用。示例应用仅为一些集成说明提供了一些上下文。

在下一步之前,您不需要运行示例应用(步骤8: 在CloudWatch中测试您的技能以及观察日志)。当您运行示例应用时,它将如下所示:

示例应用中集成了几个常见视频。
示例应用中集成了几个常见视频。

Android Studio

要使用示例应用,您需要安装Android Studio,即Android项目的官方IDE。Android Studio包含JDK的捆绑版本,其可将Android项目编译成APK。有关在计算机上设置Android Studio开发环境的信息,请参阅Android Studio入门安装Android Studio

该示例应用要求您在Android Studio中安装特定SDK工具和API。无需提前从独立SDK Manager中选择这些工具。当您打开示例应用项目时,Android Studio会提示您安装任何缺失的编译工具或API。

下载具有VSK的示例Fire TV应用

要下载示例应用,请执行以下操作:

  1. 前往https://github.com/amzn/sample-fire-tv-app-video-skill
  2. 单击Code(代码)> Download ZIP(下载ZIP)。
  3. 将zip文件保存到一个方便的位置,然后将其解压。
  4. 如果需要,可以删除.git文件夹,因为Android Studio将尝试识别VCS映射。

存储库包含两个文件夹:

文件夹 内容
VSKFireTV-示例应用程序 配置了视频技能工具包的Android示例项目,包括Alexa客户端库和ADM JAR文件
Lambda 用于创建Lambda部署程序包的Node项目(index.jspackage.json),相关描述请参见步骤6: 创建和部署Lambda程序包。此文件夹还包含video_catalog.json,其为视频内容提供数据源示例。

在Android Studio中打开示例应用

在Android Studio中打开项目并构建应用:

  1. 启动Android Studio
  2. 在Welcome(欢迎)对话框中,单击Open an existing Android Studio project(打开现有Android Studio项目)。
  3. 浏览并选择包含“app”目录的父目录(例如sample-fire-tv-app-video-skill),然后单击Open(打开)。

    当您首次打开项目时,Android Studio可能会检测到Android SDK的位置不正确,并会建议一个映射到您的计算机的路径。接受建议。此外,您可能会看到“VCS根映射无效”。 移除项目的.git文件夹(不可见),此提示应当会消失。

    Gradle开始构建该项目。视最新版本的Gradle而定,可能会提示您更新Gradle。如果出现提示,请单击Don't remind me again for this project(不要再就此项目提醒我)。

    首次打开项目时,Gradle可能需要几分钟才能构建项目,具体取决于Gradle需要下载的资产以及您的网络和处理器速度。随后的速度应该会加快。如果Android Studio缺少任何需要的库或文件,会提示您安装它们。如果出现缺少必需工具的提示,请安装所有必需的工具。

    Gradle完成项目构建后,您应该在Build(构建)选项卡中看到一个绿色对勾标记,表示成功。

    成功构建
    成功构建

    如果您遇到构建失败的情况,您可以尝试通过转到Build(构建)> Rebuild Project(重建项目)来构建项目。

  4. 单击左侧的Project(项目)侧选项卡可查看项目文件。Android Studio将在Android视图中显示以下目录:

    示例应用项目的Android视图
    示例应用项目的Android视图

    请注意,其中一个目录是AlexaClientLib,其包括Alexa客户端库。在Project(项目)视图中,应用目录包含一个libs文件夹,该文件夹中包含Amazon Device Messaging JAR

在示例应用中替换程序包名称

您需要在示例应用中替换程序包名称程序包名称在亚马逊应用商店中必须是唯一的,之后在开发者门户中使用安全配置文件和API密钥进行配置时,将需要唯一的程序包名称。以下代码示例以亮红色展示了需要自定义的程序包名称。要自定义程序包名称,请执行以下操作:

  1. 确保您处于Android视图中(如上一部分所述)。
  2. 单击Options(选项)菜单(齿轮图标),然后清除Compact Middle Packages(压缩中间程序包)旁边的复选框。

    压缩中间程序包

    这样将在层次结构中显示com.example.vskfiretv程序包,并且展开com > example > vskfiretv。

  3. 右键单击example(示例)并选择Refactor(重构)> Rename(重命名)。

    重命名程序包
  4. 选择一个唯一的名称(例如您的姓名),然后单击Refactor(重构)。

    重构
  5. 单击Do Refactor(执行重构)。

    执行重构
  6. 前往app(应用)> manifests(清单),然后打开AndroidManifest.xml文件。将package名称com.example.vskfiretv的每个实例更新为您的程序包名称。AndroidManifest.xml中有几个实例需要更新。如果您在之前的步骤中进行了重构,这些实例中的大多数应该已经更新。但是,如果旧的程序包名称仍然存在,请对其进行更新:

    第5行:

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:amazon="http://schemas.amazon.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.vskfiretv">
    

    第9行和第12行:

    <permission
        android:name="com.example.vskfiretv.permission.RECEIVE_ADM_MESSAGE"
        android:protectionLevel="signature" />
    <uses-permission
        android:name="com.example.vskfiretv.permission.RECEIVE_ADM_MESSAGE" />
      

    第66行:

     <category android:name="com.example.vskfiretv" />
     
  7. 展开Gradle Scripts(Gradle脚本)并打开build.gradle (Module: app)。使用您唯一的程序包名称更新applicationId值:

    第15行:

    defaultConfig {
    applicationId "com.example.vskfiretv"
    minSdkVersion 23
    targetSdkVersion 29
    versionCode 1
    versionName "1.0"
    

    当您更新build.gradle文件时,Android Studio会提示您重新同步自己的项目,可以单击Sync now(立即同步)。

  8. 转到Build(构建)> Rebuild Project(重建项目)。

    构建完成后,会出现一条消息,说明“Gradle build finished”(Gradle构建已完成)。

  9. 请在您存储视频ID的相同文件中记下您的程序包名称,因为您稍后在创建安全配置文件时将需要此名称。

自定义视频技能ID

您需要在示例应用中配置视频技能ID:

  1. 转到app > java > com > example > vskfiretv > MainActivity(路径将根据您自定义程序包名称的方式而有所不同)。
  2. 找到final String alexaSkillId并将值替换为您在步骤1的创建视频技能中创建的视频技能ID。

    第102行:

    final String alexaSkillId = "amzn1.ask.skill.12345678-abcd-1234-efgh-123456789";
    

    请注意第118行中的以下内容:

    // 通过调用initialize() 初始化客户端库。
    clientManager.initialize(getApplicationContext(),
       alexaSkillId,
       AlexaClientManager.SKILL_STAGE_DEVELOPMENT,
       capabilities);
    

    此服务会提示VSK客户端库尽快自动将您的Fire TV应用与您的视频技能配对。稍后在步骤12: 上线!中,您将把SKILL_STAGE_DEVELOPMENT更改为SKILL_STAGE_LIVE

识别示例应用说明

该文档提供了使用示例应用的整个过程的具体信息。通常,文档会在标注中添加与示例应用相关的信息,如下所示:

示例应用程序说明

示例应用的使用说明的格式通常是这样显示的。除非您看到此标注,否则请继续执行正常的文档步骤。该标注可能会让您知道不需要执行当前步骤,因为已在示例应用中实现该代码。或者,标注可能会为您提供有关在示例应用中工作的特殊说明或信息。

后续步骤

现在您已经设置了示例应用,可转到步骤3: 集成Alexa客户端库

(如果遇到任何问题而无法继续,请参阅云端集成故障排除。)


Last updated: 2021年10月13日