Проблема с GKSession. Не могу определить доступные устройства - PullRequest
2 голосов
/ 27 июля 2011

Привет всем Я использую следующий код для определения доступных устройств по Bluetooth.

_session = [[GKSession alloc]initWithSessionID:sessionid displayName:sessionid sessionMode:GKSessionModePeer];

_session.delegate = self;

[_session setDataReceiveHandler:self withContext:nil];

_session.available = YES;

Я добавил метод делегата

 - (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state{

NSLog(@"state : %@",state);

switch (state)
{
    case GKPeerStateConnected:
    {

        NSLog(@"%@ connected ",peerID);

        break;
    }
    case GKPeerStateDisconnected:
    {

        NSLog(@"%@ disconnected ",peerID);
        break;
    }
    case GKPeerStateAvailable:
    {
        NSLog(@"Available : %@",peerID);
        break;
    }
    case GKPeerStateUnavailable:
    {
        NSLog(@"Un Available : %@",peerID);
        break;
    }
    default:
        break;
   }

 }

Но этот метод никогда не вызывается. В чем может быть проблема? Пожалуйста, помогите мне !!!

Ответы [ 2 ]

1 голос
/ 18 января 2012

Убедитесь, что они используют один и тот же идентификатор сессии.Вместо этого попробуйте NULL в качестве идентификатора сеанса, и приложение создаст его для вас.

1 голос
/ 15 ноября 2011

хорошо, код кажется нормальным.Вы правильно заявили делегата?Я имею в виду в вашем .h?

Не могли бы вы попробовать инициализировать GKSession без displayName:

_session = [[GKSession alloc]initWithSessionID:sessionid displayName:nil sessionMode:GKSessionModePeer];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...