问题描述
旁注:这个问题本质上类似于例如Leave receiver running after sender stop ,尽管我在我的代码中找不到任何提及 stop
或 stopApplication
的内容。此外,虽然存在类似的问题,但它们通常会提供死链接,并且通常不会专门针对 android 电视接收器应用程序。
场景
- Android 设备 A 开始投射到 Android TV。这会导致 Android TV 应用作为接收器应用启动(请参阅 https://developers.google.com/cast/docs/android_tv_receiver)。
- Android 设备 B 连接到同一台 Android TV,加入现有会话
- B 断开连接(投射按钮 ->“停止投射”)
我想要发生的事情
实际发生了什么
问题
- 为什么所有发件人应用程序都断开连接,而一旦单个发件人断开连接,Android TV 应用程序就会关闭?
- 如何在发送方断开连接后让 Android TV 应用程序继续运行?
解决方法
我刚刚在我的应用中实现了这个功能,你有没有尝试做这样的事情?
在您的 Application
类中:
CastReceiverContext.getInstance().registerEventCallback(object: CastReceiverContext.EventCallback() {
override fun onSenderConnected(info: SenderInfo) {
setupPlayerData()
}
override fun onSenderDisconnected(eventInfo: SenderDisconnectedEventInfo) {
val intent = Intent(this@FooApplication,CastLauncherActivity::class.java).apply {
flags = Intent.FLAG_ACTIVITY_CLEAR_TASK or Intent.FLAG_ACTIVITY_NEW_TASK
}
startActivity(intent)
}
})
基本上我在我的应用程序中所做的是打开一个带有投射符号的启动画面。我刚刚检查过,您可以从 Activity
或 onSenderConnected()
onSenderDisconnected