Я хочу установить соединение Bluetooth между двумя iPhone с GKSession без GKPeerPickerController и без нажатия любой кнопки «соединить» с обеих сторон.GKSession: как автоматически подключить двух пэров без кнопки/подтверждения?
Я использую следующий код:
currentSessionAuto = [[GKSession alloc] initWithSessionID: @"instant-friend-auto"
currentSessionAuto.delegate = self;
currentSessionAuto.available = YES;
currentSessionAuto.disconnectTimeout = 5;
[currentSessionAuto setDataReceiveHandler: self withContext:nil];
Когда приложение начиная с обеих сторон, - (Недействительными) сессии: (GKSession *) сессии равный: (NSString *) peerID didChangeState : (GKPeerConnectionState) состояние вызывается с обеих сторон с состоянием «GKPeerStateAvailable».
С «классическим» приложением всплывающее окно отображается с обеих сторон, чтобы запросить соединение, и большую часть времени оба «пользователя» не нажимают кнопку подключения одновременно.
Если у меня есть «автоматическое соединение», мне нужен механизм, чтобы инициировать сеанс только с одной стороны, потому что без этого механизма будут инициированы два сеанса и возникнут ошибки.
Любая идея/помощь?
Tx для связи. У меня примерно одинаковый код ... Я не понимаю, почему в коде (в доступном состоянии) используется темп (0,5 с)? – fvisticot
Fair вопрос. Кажется, что connectToPeer более успешно после ожидания 0,5 с. – Marco
Этот тайм-аут, вероятно, должен дать так, что соединение имеет шанс установить за кулисами перед обновлением таблицы. Тайм-ауты, подобные этому, - плохая практика. – openfrog