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