使用GKPeerPickerController
我可以通过bluetogether轻松连接两个ios设备。但它只能在GKSessionModePeer模式下使用。
我使用代码在GKSessionModeServer
模式下创建会话
GKSession *session=[[GKSession alloc] initWithSessionID:nil displayName:nil sessionMode:GKSessionModeServer];
session.delegate = self;
session.available = YES;
// Set data handler.
[session setDataReceiveHandler:self withContext:nil];
此代码在另一台设备中以GKSessionModeClient
模式创建会话
GKSession *session=[[GKSession alloc] initWithSessionID:nil displayName:nil sessionMode:GKSessionModeClient];
session.delegate = self;
session.available = YES;
// Set data handler.
[session setDataReceiveHandler:self withContext:nil];
当我设置session.available =YES
时,应该调用一些delegate
方法。但什么都没发生。为什么?
如何找到使用api的其他设备,并将它们连接在一起? 或者任何其他方法都可以通过蓝牙传输数据?
答案 0 :(得分:0)
最后我修复它。当我设置session.available = YES时,它会查找其他会话,方法:
- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state
将被召唤。
您在搜索时不得释放会话!!!