加入意图

“想要加入”是 Android Sender 中的一项新功能, 发送应用“加入”由其他应用启动的投放会话,或 语音。您将发送器应用设置为由 Cast 创建的 intent 启动 SDK。

例如,在使用语音启动投放会话时,Cast SDK 会创建一个 通知,允许用户控制所有 Android 手机上的播放 同一网络中。当用户点按通知时,Cast SDK 会创建 intent 来启动您的应用以加入投放会话。

请参阅 CastVideos-Android 示例 了解 intent to Join 的有效实现。

使用 Android 发送者

如需启用此功能,请在您的应用中执行以下步骤:

请确保您的应用使用的 Android 发件人 SDK 版本高于 11.4.0.在 build.gradle 中:

dependencies {
    api 'com.google.android.gms:play-services-cast-framework:11.4.0'
}

向要在其中处理 intent 的 activity 添加新的 intent 过滤器。通过 intent 将供远程控制通知 (RCN) 使用,以启动您的应用 并加入投放会话 我们建议您选择 SessionManagerListener 由系统托管,而 onSessionStarted()onSessionStartFailed() 调用该方法。 确保新的 intent 过滤器在整个 Android 系统中是唯一的。周三 我们建议您使用 <data> 代码来执行此操作,如下所示:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="your_app_scheme" android:host="your_app_host"
        android:path="your_app_path"/>
</intent-filter>

<data> 标记的示例:

<data android:scheme="https" android:host="example.com"
      android:path="/cast/join"/>

在您定义新 intent 过滤器的 activity 中,调用 SessionManager.startSession(Intent)onResume() 中:

Kotlin
override fun onResume() {
    ...
    val intent = intent
    // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>"
    val intentToJoinUri = Uri.parse("https://example.com/cast/join")
    if (intent.data != null && intent.data == intentToJoinUri) {
        mCastContext.sessionManager.startSession(intent)
    }
    ...
}
Java
@Override
protected void onResume() {
    ...
    Intent intent = getIntent();
    // Intent with format: "<your_app_scheme>://<your_app_host><your_app_path>"
    Uri intentToJoinUri = Uri.parse("https://example.com/cast/join");
    if (intent.getData() != null && intent.getData().equals(intentToJoinUri)) {
        mCastContext.getSessionManager().startSession(intent);
    }
    ...
}

Google Cast Developer Console 设置

若要利用“加入 intent”功能,应用 URI 和软件包名称必须 已添加到 Google Cast 开发者控制台

您的接收者还必须列出并发布,“意图加入”功能才能正常运行 正确。

如需列出您的应用,请将列表选项切换为“是”并提供一个标题 以及一张 512x512 的图形

设置完成后,您可以使用遥控器通知来测试实现 (RCN) 如下所示:

  1. 在 Android 手机上安装 Google Home 应用,然后连接到 WLAN 网络 手机。
  2. 支持 Cast 的设备会在同一网络下设置 Google Home 设备。
  3. 使用 命令与控制 (CaC) 工具、 另一台 Android 或 iOS 设备,或通过语音查看网络接收器 应用启动时。
  4. 等待几秒钟,以便手机上收到 RCN 并点按通知 触发 intent。该 intent 应向符合以下条件的任何应用广播: 使用加入会话所需的数据注册 intent。

SessionManagerListener.onSessionStarted(T, String) 就会被触发并加入会话

验证

如果您的应用成功加入会话, SessionManagerListener.onSessionStarted(T, String) 调用该方法。否则 SessionManagerListener.onSessionStartFailed(T, int) 调用该方法。假设您的应用已经正确处理了这些事件(针对 启动展开后的控制器或迷你控制器) 执行任何其他操作。