【问题标题】:ChromeCast Sender Discovery LogicChromeCast 发件人发现逻辑
【发布时间】:2015-05-29 17:50:18
【问题描述】:

Google 提供的 ChromeCast sample iOS Github project 在发现设备时会尝试重新连接到以前的设备。

问题在于,每次应用程序在后台和前台运行时,发现过程都会再次发生,并且无论其他应用程序是否已连接到 Chromecast,都会连接到前一个设备(请参见下面的代码)。这基本上破坏了另一个应用程序,而当前的应用程序接管了。

有没有办法确定另一个应用程序是否已连接,并且只有在没有连接时才尝试连接?

- (void)deviceDidComeOnline:(GCKDevice *)device 
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString* lastDeviceID = [defaults objectForKey:@"lastDeviceID"];
    if (lastDeviceID != nil && [[device deviceID] isEqualToString:lastDeviceID])
    {
        self.isReconnecting = YES;
        [self connectToDevice:device];
    }
}

【问题讨论】:

    标签: chromecast


    【解决方案1】:

    重连逻辑应该考虑之前的会话id;仅当当前会话 id(在 chromecast 上)与手机上的(持久)匹配时,才重新连接。我没有查看 iOS 应用程序以了解它是否在那里被强制执行,但基本上你可以连接然后尝试使用旧会话 ID 加入(调用 joinApplication),如果它成功,那么你很好,如果不是,那么你应该断开连接。这是一组描述此流程的diagrams

    【讨论】:

    • 谢谢。这似乎按预期正常工作。
    猜你喜欢
    • 1970-01-01
    • 2013-12-19
    • 2018-02-22
    • 2015-09-15
    • 2018-12-14
    • 2013-08-04
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多