Android 如何在应用程序重新启动后重新加入cast会话?

Android 如何在应用程序重新启动后重新加入cast会话?,android,cordova-plugins,google-cast,Android,Cordova Plugins,Google Cast,我想在应用程序重新启动后重新加入现有的cast会话。 在Youtube应用程序上,你可以开始播放一些媒体,强制关闭应用程序,再次启动Youtube,然后它无缝地重新加入播放会话。(它仍然知道您正在铸造什么,您可以控制会话。) 我怎样才能实现这种行为呢 我已经保存了sessionId,但是我似乎找不到一种方法来查看当前是否有任何路由正在使用相同的sessionId。(我也不确定这样做是否正确。)在onCreate事件中,您必须调用: CastContext.getSharedInstance(ac

我想在应用程序重新启动后重新加入现有的cast会话。

在Youtube应用程序上,你可以开始播放一些媒体,强制关闭应用程序,再次启动Youtube,然后它无缝地重新加入播放会话。(它仍然知道您正在铸造什么,您可以控制会话。)

我怎样才能实现这种行为呢

我已经保存了sessionId,但是我似乎找不到一种方法来查看当前是否有任何路由正在使用相同的sessionId。(我也不确定这样做是否正确。)

onCreate
事件中,您必须调用:

CastContext.getSharedInstance(activity);
这将产生所需的行为

我的问题是,我正在开发一个cordova插件,而该插件直到
onCreate
onResume
之后才加载。(我相信搜索和自动重新加入发生在恢复过程中,因此上下文丢失了此事件,根本没有尝试搜索。)

我的解决方案是在恢复之前加载corodva插件。我通过修改
plugin.xml
以包含
来实现这一点

  <platform name="android">
    <config-file target="res/xml/config.xml" parent="/*">
      <feature name="Chromecast">
        <param name="android-package" value="acidhax.cordova.chromecast.Chromecast"/>
        <param name="onload" value="true" />
      </feature>
    </config-file>
</platform>
CastContext.getSharedInstance(activity).getSessionManager().addSessionManagerListener(new SessionListener() {
    @Override
    public void onSessionResumed(CastSession castSession, boolean wasSuspended) {
        // This catches any sessions we are able to rejoin
        setSession(castSession);
    }
}, CastSession.class);