来自 MediaController 的 android ActiveSessions
Posted
技术标签:
【中文标题】来自 MediaController 的 android ActiveSessions【英文标题】:android ActiveSessions from MediaController 【发布时间】:2018-05-17 20:57:12 【问题描述】:如何通过媒体控制器(android.media.session.MediaController)恢复用户活动的所有(或几乎)会话数据。至少 Youtube 和 GP Music?
我无法从媒体控制器获取 GPMusic(空)的待处理意图。来自 Youtube 的 Intent 只能恢复主屏幕(我想恢复视频和位置)
List<MediaController> list = mgr.getActiveSessions(new ComponentName(getApplicationContext().getPackageName(), TestService.class.getName()));
...
PendingIntent pIntent = currentController.getSessionActivity()
pIntent.send();
【问题讨论】:
【参考方案1】:Android TV 开发者社区对此进行了讨论。看看这个帖子:https://plus.google.com/u/1/110913444113360071708/posts/HDs8UsyQwxL
您可以从 MediaController 获取 Session 活动以启动到应用程序中。如果你没有看到它,那么应用程序没有正确使用 MediaSession,你可以使用包名启动应用程序。您也可以从控制器获取包名:mediaSessionController.getPackageName()
如果您正确实现了 OnActivieSessionsChangedListener(如果您做到了这一步,听起来就像您已经做到了),那么其余的取决于应用程序正确维护和更新其 MediaSession。可悲的是,有很多应用程序不能 100% 正确地维护其 MediaSession。他们可能没有更新他们的元数据、播放状态,甚至没有正确注销他们的会话。每个应用的行为可能会有所不同,具体取决于它们对 MediaSession 的投入。
【讨论】:
以上是关于来自 MediaController 的 android ActiveSessions的主要内容,如果未能解决你的问题,请参考以下文章
将 MediaController 定位在 VideoView 上
VideoView - MediaController 未显示