开发者控制台

步骤2: 从目录验证深层链接

步骤2: 从目录验证深层链接

在将您的应用提交到亚马逊应用商店之前,请通过运行此处列出的测试案例来验证您的集成。成功验证行为是否正确将有助于亚马逊应用商店接受您的应用。根据应用的状态(已发布或未发布)和条件(是否需要登录、是否有免费试用),您只需要执行适用于应用的步骤。

使用adb启动Comrade,以查看已发送意图

要查看应用程序发送的意图,请使用adb连接到Fire TV设备并启动Comrade。Comrade是Fire TV API的名称,使用启动器管理内容。

  1. 首先卸载您的应用。

    要卸载应用,转到Settings(设置)> Applications(应用)> Manage Installed Applications(管理已安装应用)。选择您的应用,然后单击Uninstall(卸载)两次。

  2. 经由adb连接到Fire TV设备。例如:

    adb connect 10.49.172.33:5555
    

    您可通过该路径寻找网络地址:Settings > My Fire TV(我的Fire TV)> About(关于)> Network(网络)。(有些型号显示为“Device”(设备)而不是“My Fire TV”)

  3. 使用adb安装您的应用。例如:

    adb install <APK文件的路径>
    

    有关更多详细信息,请参阅安装和运行您的应用

  4. 清除logcat:

    adb logcat -c
    
  5. 根据您Fire TV设备的操作系统版本,运行以下命令:

    adb logcat | grep FTVCS:ComradeActionHandler
    
  6. 始终开启中断,以便监控已发送意图。然后根据下一节已启动操作和已发送意图的说明启动操作,然后观察响应结果。再往后一节adb命令输出示例则显示了您应该在终端中看到的输出示例。

已启动操作和已发送意图

本节显示了已启动的操作和随后应该作为结果发送的意图。

已发起操作 已发送意图
首次启动时,例如以下任何一种首次启动:
  • 应用在安装后启动 ...
  • 应用在设备重启后启动 ...
  • 应用在强制停止后启动 ...

...默认情况下应发送登录意图。

...只有在符合以下任何一项的情况下,才应发送播放意图:

  • 观看所有内容不需要登录(也就是说,您的所有内容都可以免费观看,不需要账户,即使创建账户也是免费的)
  • 您的应用使用SSO,并且有适用于您的应用的有效SSO令牌
  • 您的应用使用自己的自动验证类型,并验证用户是否有访问权限

在成功登录之后… …应当已发送播放意图
在注销或登出时… …应当发送登录意图
如果您的应用使用单点登录(SSO),并且您的应用处于后台… …当您的应用恢复并且您确定存在有效的SSO令牌onResume时,应该发送播放意图。(注意:​ 要将应用程序移到后台,请启动应用,然后按下遥控器上的“主页”)

adb命令输出示例

本节显示了应该出现在终端中的意图输出示例,并强调了关键信息。突出显示的值指示从您的应用接收到的意图:

  • SIGN_IN: 登录意图
  • PLAY: 播放意图
  • PARTNER123: 合作伙伴的目录名称

登录意图输出示例

收到登录意图时,您将看到如下输出内容:

06-11 16:09:57.448  4347 16145 I FTVCS:ComradeActionHandler: Received capability: SIGN_IN
for partner: PARTNER123 06-11 16:09:57.450  4347 16145 I FTVCS:ComradeActionHandler: Processing
capabilities Capabilities{mPartnerId='PARTNER123', mPackageName='com.yourpackagename.firetv',
mComradeApiVersion=V1, mSubscriptionIds=[],
mCapabilities={SIGN_IN=Capabilities{mCapabilityType=SIGN_IN,
mIntentPackageName='com.yourpackagename.firetv',
mIntentAction='android.intent.action.VIEW',
mIntentClassName='com.partner.android.IntegrationActivity',
mIntentDataExtraName='null', mIntentFlags=-1}}}

以上代码使用一般值。您将看到应用程序自带的程序包名称、类和额外信息。

播放意图输出示例

收到播放意图时,您将看到如下输出内容:

06-11 16:09:57.379  4347 16145 I FTVCS:ComradeActionHandler: Received capability: PLAY for
partner: PARTNER123 06-11 16:09:57.380  4347 16145 I FTVCS:ComradeActionHandler: Processing
capabilities Capabilities{mPartnerId='PARTNER123', mPackageName='com.yourpackagename.firetv',
mComradeApiVersion=V1, mSubscriptionIds=[],
mCapabilities={PLAY=Capabilities{mCapabilityType=PLAY,
mIntentPackageName='com.yourpackagename.firetv',
mIntentAction='com.yourpackagename.amazon.catalog.ON_MESSAGE',
mIntentClassName='com.yourpackagename.MainActivity', mIntentDataExtraName='null',
mIntentFlags=268435456}}}

以上代码使用一般值。您将看到应用程序自带的程序包名称、类和额外信息。

除了确保发送正确的意图,还应当测试深层链接行为。更具体地讲,确保播放用户选择的内容会打开应用并直接启动视频播放(如果应用发送了播放意图),或者在启动时来到应用内的登录或注册屏幕(如果应用发送了登录意图)。

对于每个深层链接场景,应该测试两种类型的用户状态:未经身份验证的用户和经过身份验证的用户。要测试深层链接,您可以使用Fire TV的通用搜索从应用中搜索媒体,然后选择在应用中查看结果。下表显示了预期的条件和结果。

条件 结果
未经身份验证的状态: 您的应用需要用户完成身份验证才能观看内容,但用户尚未登录。 深层链接应该会将您带到身份验证或注册屏幕。身份验证成功后,视频应开始播放。
已验证身份状态: 您的应用需要用户完成身份验证才能观看内容,并且用户已成功登录。或者,所有内容都可以免费观看,甚至不需要创建账户。 访问深层链接时,应启动视频的播放。不应转到视频详情页面。

测试以下深层链接场景:

从冷启动进入深层链接

“冷启动”是指应用安装后或强制停止运行后的首次启动。如果已在后台运行的应用必须冷启动,则深层链接行为会有所不同。

 

要从冷启动测试已验证身份状态下的深层链接:

  1. 启动您的应用。
  2. 登录您的应用。
  3. 按遥控器上的“Home”按钮。
  4. 强制停止应用。转到Settings > Applications > Manage Installed Applications > [您的应用] > Force stop
  5. 使用Fire TV的通用搜索来搜索您应用的媒体,然后选择它。媒体详情页面会显示Watch Now with <您的应用>按钮。
  6. 单击Watch Now with <您的应用>,媒体应当在您的应用中打开。

访问深层链接时,应启动视频的播放。不应转到视频详情页面。

 

要从冷启动测试未经身份验证状态下的深层链接:

  1. 启动您的应用。
  2. 如果必要,请从应用登出。
  3. 按遥控器上的“Home”按钮。
  4. 强制停止应用。转到Settings > Applications > Manage Installed Applications > [您的应用] > Force stop
  5. 使用Fire TV的通用搜索来搜索您应用的媒体,然后选择它。在媒体详情页面上,可能有各种订阅选项。您的应用可能列在More Ways to Watch(更多观看方式)下方。有关如何就此进行确定的更多信息,请参阅The Buy Box
  6. 单击您的应用,将其启动。应当会出现您应用的登录或注册屏幕。

深层链接应该会将您带到身份验证或注册屏幕。身份验证成功后,视频应开始播放。

与后台应用之间的深层链接

 

要在您的应用处于后台时测试已验证身份阶段中的深层链接:

  1. 启动您的应用。
  2. 登录您的应用。
  3. 按遥控器上的“Home”按钮。
  4. 使用Fire TV的通用搜索来搜索您应用的媒体,然后选择它。媒体详情页面会显示Watch Now with <您的应用>按钮。
  5. 单击Watch Now with <您的应用>,媒体应当在您的应用中打开。

访问深层链接时,应启动视频的播放。不应转到视频详情页面。

 

要在您的应用处于后台时测试未经身份验证阶段中的深层链接:

  1. 启动您的应用。
  2. 如果必要,请从应用登出。
  3. 按遥控器上的“Home”按钮。
  4. 使用Fire TV的通用搜索来搜索您应用的媒体,然后选择它。在媒体详情页面上,可能有各种观看您的内容的方式。您的应用可能列在More Ways to Watch下方。有关如何就此进行确定的更多信息,请参阅The Buy Box
  5. 单击您的应用,将其启动。应当会出现您应用的登录或注册屏幕。

深层链接应该会将您带到身份验证或注册屏幕。身份验证成功后,视频应开始播放。

与视频播放之间的深层链接

 

要在视频正在播放时测试已验证身份状态下的深层链接:

  1. 启动您的应用。
  2. 登录您的应用。
  3. 开始在您的应用中观看视频。
  4. 在观看视频时,按下遥控器上的Alexa按钮,进行无动词的内容语音搜索。例如,在搜索Friends(好友)时,按Alexa并说出Friends
  5. 通用搜索应显示内容,您的应用应停止音频和视频播放。选择内容。

内容应当自动播放。不应转到视频详情页面。

测试案例: 用户可使用“后退”按钮返回到搜索结果页面

此测试案例将使用“后退”按钮检查行为是否合适。

  1. 从Fire TV主屏幕中,从应用中搜索媒体。
  2. 选择使用您的应用播放内容。
  3. 按Back按钮。按下Back按钮,您最终会返回到搜索结果。

测试案例:发送无效的内容ID

您应该运行的另一个测试案例是向应用程序发送无效的内容ID,以确保其能够妥善处理此条件。如果您的应用无法正确处理此条件,请重新访问您的错误处理代码,并根据需要进行更改。

要测试向您的应用发送无效的内容ID

  1. 将您的应用下载或侧载到Fire TV设备。
  2. 如有必要,请登录和/或激活应用订阅。
  3. 使用测试应用(请参阅使用集成测试应用来测试Fire TV启动器集成)或adb命令(请参阅使用ADB来测试启动器集成)向您的应用发送无效ID。
  4. 首先发送一个有效的ID,以确保内容正确启动。
  5. 测试以下无效ID条件:
    • 使用数字发送无效的ID。
    • 使用字母字符发送无效的ID。
    • 使用数字和字母的组合发送无效的ID。
  6. 验证在发送无效ID时,您的应用是否能够正确处理意图。

应用应该启动并将用户留在应用的主屏幕上。或者,您的应用应该提供适当的消息,例如“抱歉,您选择的内容不再提供。” 如果用户没能进入应用程序主屏幕或消息未显示,请修改错误处理代码进行修正。

其他测试

您也可以按照以下两个主题所述,对目录内容执行附加测试:


Last updated: 2023年3月24日