“想要加入”是 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()
中:
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) } ... }
@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) 如下所示:
- 在 Android 手机上安装 Google Home 应用,然后连接到 WLAN 网络 手机。
- 支持 Cast 的设备会在同一网络下设置 Google Home 设备。
- 使用 命令与控制 (CaC) 工具、 另一台 Android 或 iOS 设备,或通过语音查看网络接收器 应用启动时。
- 等待几秒钟,以便手机上收到 RCN 并点按通知 触发 intent。该 intent 应向符合以下条件的任何应用广播: 使用加入会话所需的数据注册 intent。
SessionManagerListener.onSessionStarted(T, String)
就会被触发并加入会话
验证
如果您的应用成功加入会话,
SessionManagerListener.onSessionStarted(T, String)
调用该方法。否则
SessionManagerListener.onSessionStartFailed(T, int)
调用该方法。假设您的应用已经正确处理了这些事件(针对
启动展开后的控制器或迷你控制器)
执行任何其他操作。