如何在 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 主屏幕上为当前正在运行的任务设置图标和标题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android TV 上创建带有步骤的设置菜单屏幕

可以在 Google Play 上为 Android TV 和智能手机发布相同的应用程序

布局元素在 4K 屏幕 Android TV 上看起来很模糊

Android TV如何在屏幕顶部制作一个标签?

为 Android TV 应用嵌入欢迎图片

如何在导航栏上为单个视图上的不同按钮设置标题?