android - CastRemoteDisplayLocalService 可以在自定义接收器中使用吗?
问题描述
我正在尝试创建一个可以在 Chromecast 上广播 Android 视图的应用程序,我认为我在CastRemoteDisplayLocalService中发现了一些有希望的东西。我创建了一个简单的测试应用程序,但发现在我投射设备时从未调用过回调onCreatePresentation 。经过一番搜索,我发现这是因为我的应用程序没有发布为远程显示应用程序,而是来自 Google Cast 开发人员控制台的自定义应用程序接收器。
不幸的是,当我尝试从控制台创建新应用程序时,远程显示应用程序不是一个选项。经过一番搜索,我遇到了这个 Stack Overflow 问题,说 Remote Display API 现在已弃用。有一个名为CastRemoteDisplayApi的接口被标记为已弃用,但我一直尝试使用的类没有被标记为这样。
这让我想知道 CastRemoteDisplayLocalService 和所有其他未标记为已弃用的远程显示类是否实际上已弃用且不可用,或者该功能是否已通过将其配置为接受远程显示而转移到自定义接收器中工作。
这是相关代码现在的样子:
MainActivity.kt
private fun startCastService() {
val intent = Intent(this, MainActivity::class.java)
val pendingIntent = PendingIntent.getActivity(this, 0, intent, 0)
val notificationSettings = CastRemoteDisplayLocalService.NotificationSettings.Builder().setNotificationPendingIntent(pendingIntent).build()
CastRemoteDisplayLocalService.startService(this, CastRemoteDisplayLocalServiceImpl::class.java, "2839EC8D", castDevice, notificationSettings, object : CastRemoteDisplayLocalService.Callbacks {
override fun onRemoteDisplaySessionEnded(p0: CastRemoteDisplayLocalService?) {
Log.d(TAG, "onRemoteDisplaySessionEnded")
}
override fun onRemoteDisplaySessionError(p0: Status?) {
Log.d(TAG, "onRemoteDisplaySessionError")
}
override fun onRemoteDisplaySessionStarted(p0: CastRemoteDisplayLocalService?) {
Log.d(TAG, "onRemoteDisplaySessionStarted")
}
override fun onServiceCreated(p0: CastRemoteDisplayLocalService?) {
Log.d(TAG, "onServiceCreated")
}
})
}
CastRemoteDisplayLocalServiceImpl.kt
class CastRemoteDisplayLocalServiceImpl : CastRemoteDisplayLocalService() {
val TAG = "CastRemoteDisplayLoc..."
// This function gets called
override fun onCreate() {
super.onCreate()
Log.d(TAG, "onCreate")
}
// This function does not get called
override fun onCreatePresentation(p0: Display?) {
Log.d(TAG, "onCreatePresentation")
}
override fun onDismissPresentation() {
Log.d(TAG, "onDismissPresentation")
}
}
如果自定义应用程序接收器有办法获得可以解决此问题的 onCreatePresentation 回调,我很难找到它。如果 CastRemoteDisplayLocalService 实际上已被弃用,是否有另一种方法可以轻松地将 Android 视图投射到 Chromecast?谢谢!
解决方案
推荐阅读
- javascript - 如何在将字符串插入到光标当前位置的div中时更改字符串的颜色
- jquery - 部署的 Heroku 应用程序仅在刷新后工作(Node.js、Express.js、Jquery、Css、Html、TMDB API)
- .net-core - 如何创建具有嵌套依赖项的 Nuget 包
- javascript - 如何更改单选按钮的跨度文本
- mongodb - 当它应该是完全限定的域名时,Redhat Linux 7 kerberos 客户端在 kerberos 跟踪中返回 localhost
- vega-lite - 如何避免带图层的折线图中的缩放冲突?
- prolog - Prolog 初学者 - 实例化不足的参数
- postgresql - PostgreSQL 查询计划已更改
- django - 检查值是否是 django 模板中的 url
- php - PHP 自动预先和附加动态内容到输出