GKSession的问题。无法识别可用的设备

时间:2011-07-27 13:48:10

标签: iphone gamekit gksession

大家好我正在使用以下代码来识别蓝牙上的可用设备。

_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 个答案:

答案 0 :(得分:1)

好吧,代码似乎很好。 你有正确宣布的委托吗?我的意思是< GKSessionDelegate>在你的.h?

你可以尝试初始化没有displayName的GKSession:

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

答案 1 :(得分:1)

确保他们使用相同的sessionID。尝试使用NULL作为会话ID,应用程序将为您创建一个。