如何断开与接收器应用程序的连接?

How to disconnect from receiver application?

在我的 Chromecast Sender 应用程序中,我添加了一个菜单项以允许用户停止设备上的接收器应用程序(并确保媒体路由器对话框中的 "Disconnect" 按钮 不会停止接收器,就像在 CastHelloText-android 示例应用程序中那样)

因此,当用户点击 "Exit App" 菜单项时,我是 运行 示例代码 "teardown()" 方法(显示 here)。此代码会终止接收方应用程序,并且应该取消 select 当前 selected 设备。

然而,虽然它确实会终止接收器应用程序,但它不会取消 select 设备,并且 Cast 图标保持 selected 状态,点击它会显示对话框,就好像 phone 仍然连接到 Chromecast。

显然,如果我随后尝试从我的应用中投射任何内容,它就不能。

那么如何完全断开与设备的连接?

我的 teardown() 方法与链接代码中的方法 100% 相同。下面是我的菜单代码:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

    switch (item.getItemId()) {
        case R.id.exit_app:
            teardown();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

您可以拨打

mMediaRouter.selectRoute(mMediaRouter.getDefaultRoute())

或者

mMediaRouter.unselect(UNSELECT_REASON_DISCONNECTED)