如何在 Android TV 主屏幕上为当前正在运行的任务设置图标和标题
Posted
技术标签:
【中文标题】如何在 Android TV 主屏幕上为当前正在运行的任务设置图标和标题【英文标题】:How to set the icon and title on Android TV home screen for the currently running task 【发布时间】:2018-04-23 11:52:27 【问题描述】:我已根据本指南为 android TV 应用启用画中画模式:https://developer.android.com/guide/topics/ui/picture-in-picture.html
当我进入 PiP 模式并导航到 Android 主屏幕的主屏幕时,它会在顶部显示当前正在运行的任务(PiP 窗口),并带有图标、标题和打开和关闭选项。
我找不到任何关于如何设置标题和图标(但最重要的是标题)的文档。我尝试设置ActivityManager.TaskDescription,但没有任何运气。另请注意,我确实在清单中设置了应用标题,但此处未显示。另请注意,在任务切换器中,应用标题和图标显示正确。
任何想法如何从屏幕截图中设置(No title program)
?
在 Android TV API 26、27 上测试,因为画中画仅在 Oreo 之后可用。
【问题讨论】:
GitHub 上的 googlesamples 示例应用似乎也存在问题:github.com/googlesamples/android-PictureInPicture/issues/4 已更新示例以解决此问题。 谢谢本杰明!在您的指导下设法解决了问题! 【参考方案1】:如果你实现了MediaSession,就会出现标题。系统评估 MediaSession 的方式类似于带有 MediaSession 的通知在手机上的工作方式。
在 android-PictureInPicture 示例中有一个activity that demonstrates MediaSession 如何影响 PIP 操作。这是示例中的一个错误,感谢您记录它。
要显示标题,您需要更新媒体会话中的元数据。
MediaMetadataCompat metadata = new MediaMetadataCompat.Builder()
.putString(
MediaMetadataCompat.METADATA_KEY_DISPLAY_TITLE,
"Big Buck Bunny")
...
.build();
mSession.setMetadata(metadata);
【讨论】:
以上是关于如何在 Android TV 主屏幕上为当前正在运行的任务设置图标和标题的主要内容,如果未能解决你的问题,请参考以下文章
可以在 Google Play 上为 Android TV 和智能手机发布相同的应用程序