2015-05-29 1 views
0

ChromeCast sample iOS Github project, предоставленный Google, пытается повторно подключиться к предыдущему устройству при обнаружении устройства.ChromeCast Sender Discovery Logic

Проблема заключается в том, что при каждом обращении к фону и переднем плане процесс обнаружения происходит снова, а предыдущее устройство подключается независимо от того, подключено ли другое приложение к 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

Логика повторного подключения должна учитывать предыдущий идентификатор сеанса; только повторно подключаться, если текущий идентификатор сеанса (на хромоте) совпадает с (сохраненным) на телефоне. Я не смотрел приложение iOS, чтобы узнать, будет ли оно принудительно введено там или нет, но в основном вы можете подключиться, а затем попытаться присоединиться (вызовите joinApplication) со старым идентификатором сеанса, и если это удастся, тогда вы добры, и если нет, тогда вы должны отключиться. Вот набор diagrams, который изображает этот поток.

+0

спасибо. Кажется, что он работает правильно и, как ожидалось. – Steve