Как установить соединение с GameKit, не нажимая обе кнопки на одну и ту же кнопку - PullRequest
0 голосов
/ 06 октября 2011

Я пытаюсь разработать приложение, в котором отправляю сведения о контакте на другое устройство.Я могу подключить два устройства, но только если нажата одна и та же кнопка на обоих устройствах.

Мой вопрос: могу ли я использовать gamekit, чтобы приложение прослушивало устройства в фоновом режиме, чтобы прослушивающее устройство недолжны нажать кнопку, чтобы позволить поисковому устройству найти его.Итак, в основном:

Поиск устройства (x): Нажатие кнопки -> Поиск другого устройства

Прослушивающее устройство (y): Устройство x хотело бы подключиться к вам.(без необходимости нажимать кнопку, чтобы сделать себя видимым)

1 Ответ

1 голос
/ 09 октября 2011

Ну, я не уверен, что полностью понимаю ваш вопрос, но вы можете сделать свое приложение видимым, установив для свойства 'available' объекта GKSession значение true.

GKSession *session = [[GKSession alloc] initWithSessionID:@"MyApp" displayName:@"Name" sessionMode:GKSessionModePeer];
session.delegate = self;
[session setDataReceiveHandler:self withContext:NULL];
session.available = YES;

Или, может быть,вы используете GKPicker для установки соединений и обращаетесь к модальному окну с надписью «ХХ хочет соединиться»?

Совершенно возможно автоматически автоматически принимать входящие соединения.Взгляните на протокол GKSessionDelegate.

По сути, вы делаете:

 - (void)session:(GKSession *)session didReceiveConnectionRequestFromPeer:(NSString *)peerID
{
    NSError *err;
    if (![session acceptConnectionFromPeer:peerID error:&err])
        //Deal with error
}
...