ChromeCast发件人发现逻辑

时间:2015-05-29 17:50:19

标签: chromecast

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];
    }
}

1 个答案:

答案 0 :(得分:1)

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