支持 Google Cast 的 Android TV

随着 Android 5.0 的发布,Android TV 也开始支持 Google Cast。 本文档介绍了开发 Cast 应用时需要执行哪些操作,才能在 Android TV 上设置和测试。您现有的 Cast 应用可在 Android TV 上运行,无需任何额外操作。如果您是首次开发 Cast 应用,请先查看 Google Cast 文档并开发您的 Cast 应用,以便在 Chromecast 设备上运行,然后再使用 Android TV 进行开发和测试。

针对开发进行设置

  1. 设置 Android TV 设备:
    1. 将 Android TV 设备连接到本地网络。
    2. 登录您的 Google 账号。
  2. 设置设备行中,选择关于
  3. 向下滚动到并点击 Build 数次,直到出现显示“您现在处于开发者模式”的对话框。
  4. 如果 USB 调试:
    1. 安装 USB 线,但暂时不要将 USB 线的主端连接到计算机。
    2. 偏好设置行中,依次选择开发者选项USB 调试,然后选择开启
  5. 返回主屏幕。您必须执行此操作才能应用刚刚选择的设置。除非您恢复出厂设置,否则这些设置将保留。
  6. 设备注册中所述,在 Google Cast SDK Developer Console 中注册您的 Android TV 设备。

调试

如需在 Android TV 设备上测试和调试网络接收器应用,请执行以下操作:

  1. Google Cast SDK Developer Console 上注册您的 Android TV 设备和应用。如需详细了解如何注册设备和应用,请参阅注册
  2. 启动发送器应用,并将内容投放到 Android TV 设备。
  3. 按照使用 Android 调试桥中的说明,通过 adb 连接到 Android TV 设备。
  4. 在开发机器上,打开 Chrome 浏览器窗口,然后转到 chrome://inspect
  5. 点击 inspect 链接,将 Web 接收器置于调试程序。
  6. 在 Chrome 远程调试程序控制台中,输入以下命令来启用调试日志记录:

    cast.receiver.logger.setLevelValue(cast.receiver.LoggerLevel.DEBUG);
    

如需了解详情,请参阅调试

Android TV 兼容性准则

若要让您的 Cast 应用与 Android TV 兼容,只需执行极少的额外工作。为确保您的应用与 Android TV 兼容,请避免以下建议和常见误区:

  • 请注意,用户代理字符串同时包含“Android”和“CrKey”;有些网站可能会重定向到仅针对移动设备的网站,因为它们检测到“Android”标签。不要假定用户代理字符串中的“Android”始终表示移动设备用户。
  • Android 的媒体堆栈可能会使用透明的 GZIP 提取数据。确保您的媒体数据可以响应 Accept-Encoding: gzip
  • Android TV HTML5 媒体事件的触发时间可能与 Chromecast 不同,这可能会揭示 Chromecast 上隐藏的问题。
  • 更新媒体时,请使用由 <audio>/<video> 元素触发的媒体相关事件,如 timeupdatepausewaiting。避免使用 progresssuspendstalled 等网络相关事件,因为这些事件往往取决于平台。
  • 配置 Web 接收器网站的 HTTPS 证书时,请务必包含中间 CA 证书。请查看 Qualsys SSL 测试页面以验证:如果您网站的可信认证路径包含标记为“额外下载”的 CA 证书,则可能不会在 Android 平台上加载。
  • 尽管 Chromecast 会在 720p 图形平面上显示“网络接收器”页面,但其他 Cast 平台(包括 Android TV)可以最高以 1080p 的分辨率显示该页面。确保您的 Web Receiver 页面可在不同的分辨率下正常缩放。

使用 Android 调试桥

Android TV 平台适用于多种消费电子设备:电视、机顶盒、游戏机等。每个参数的配置可能各不相同。如果您无法通过设备界面访问 Android TV 系统资源,可以使用 Android 调试桥 (ADB) 来获取设备的注册序列号,并调试您的应用。如需了解详情,请参阅 Android 调试桥

通过 Wi-Fi 使用 ADB

如需通过 ADB 连接到设备并连接到 Wi-Fi 网络,请执行以下操作:

  1. 在 Android TV 设备上,按照开发设置中的说明启用了开发者选项。
  2. 确保您的计算机与 Android TV 设备连接到同一网络。
  3. 打开终端并输入以下命令:

    adb connect Android TV device IP address:4321
    
  4. 在计算机上,打开一个终端并输入 ADB 命令。您可以使用以下命令验证是否已建立连接,以及 Android TV 设备是否正在网络通信:

    adb logcat

通过 USB 数据线使用 ADB

如需使用 USB 线连接通过 ADB 连接到您的设备,请执行以下操作:

  1. 按照开发设置中的说明,设置 Android TV 设备以用于开发。
  2. 将 USB 线的主端连接到计算机。
  3. 要允许 USB 调试吗?对话框中,选择始终允许使用这台计算机进行调试,然后选择确定
  4. 在计算机上,打开一个终端并输入 ADB 命令。您可以使用以下命令验证是否已建立连接,以及 Android TV 设备是否正在网络通信:

    adb logcat

通过 TCP/IP 使用 ADB

ADB 会在没有 USB 线的情况下通过 TCP/IP 工作,但您必须先获取 Android TV 设备的 IP 地址。由开发者问题的设备会自动监听 ADB 端口连接,并且无需初始化端口即可连接。标准零售 Android TV 设备不会自动监听 ADB 连接;对于这些设备,您必须先使用 USB 线连接到 ADB 并初始化端口。

  1. 按照开发设置中的说明,设置 Android TV 设备以用于开发。
  2. 在 Android TV 的设备行中,依次选择网络 > Wi-Fi,然后选择已连接的网络。
  3. 选择状态信息并记下 IP 地址
  4. 如果您的设备是标准零售 Android TV 设备,请执行以下操作:

    1. 请按照通过 USB 数据线使用 adb 中的步骤操作。
    2. 确保您的计算机与 Android TV 设备连接到同一网络。
    3. 在计算机的终端中,输入以下命令来初始化 TCP/IP 的端口:

      adb tcpip 5555
    4. 拔掉 USB 线,然后在终端中输入以下命令:

      adb connect Android TV device IP address:5555
      
  5. 如果您的设备是开发者问题的 Android TV,请执行以下操作:

    1. 确保您的计算机与 Android TV 设备连接到同一网络。
    2. 打开终端并输入以下命令:

      adb connect Android TV device IP address:4321
      
  6. 在 Android TV 的要允许 USB 调试吗?对话框中,选择一律允许使用这台计算机进行调试,然后选择确定。您可以使用以下命令验证是否已建立连接,以及 Android TV 设备是否正在网络通信:

    adb logcat