来自MediaController的android ActiveSessions

来自MediaController的android ActiveSessions,android,youtube,android-tv,android-mediasession,Android,Youtube,Android Tv,Android Mediasession,如何通过媒体控制器(android.media.session.MediaController)恢复用户活动的所有(或几乎所有)会话数据。至少是Youtube和GP音乐 我无法从媒体控制器获取GPMusic的挂起意图(null)。Youtube的意图只能恢复主屏幕(我想恢复视频和位置) List List=mgr.getActiveSessions(新组件名(getApplicationContext().getPackageName(),TestService.class.getName())

如何通过媒体控制器(android.media.session.MediaController)恢复用户活动的所有(或几乎所有)会话数据。至少是Youtube和GP音乐

我无法从媒体控制器获取GPMusic的挂起意图(null)。Youtube的意图只能恢复主屏幕(我想恢复视频和位置)

List List=mgr.getActiveSessions(新组件名(getApplicationContext().getPackageName(),TestService.class.getName());
...
PendingEvent pIntent=currentController.getSessionActivity()
pIntent.send();

Android TV开发者社区对此进行了讨论。查看此帖子:

从MediaController,您可以将会话活动启动到应用程序中。如果您没有看到它,那么应用程序没有正确使用MediaSession,您可以使用软件包名称启动应用程序。您还可以从控制器获取包名:mediaSessionController.getPackageName()

如果您正确地实现了OnActiviesSessionsChangedListener(如果您做到这一点,听起来您已经做到了),那么其余的都取决于应用程序是否正确地维护和更新其MediaSession。遗憾的是,有很多应用程序没有100%正确地维护MediaSession。它们可能没有更新元数据、播放状态,甚至没有正确注销会话。每个应用程序的行为可能会有所不同,这取决于它们在MediaSession上的投资

List<MediaController> list = mgr.getActiveSessions(new ComponentName(getApplicationContext().getPackageName(), TestService.class.getName()));
...
PendingIntent pIntent = currentController.getSessionActivity() 
pIntent.send();