2011-07-27 2 views
2

Bonjour à tous J'utilise le code suivant pour identifier les périphériques disponibles sur Bluetooth.Problème avec GKSession. Impossible d'identifier les périphériques disponibles

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

_session.delegate = self; 

[_session setDataReceiveHandler:self withContext:nil]; 

_session.available = YES; 

J'ai alos ajouté la méthode déléguée

- (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; 
    } 

} 

Mais cette méthode est jamais appelée. Quel peut être le problème ? S'il vous plaît aidez-moi !!!

Répondre

1

bien, le code semble bien. avez-vous un délégué déclaré correctement? Je veux dire < GKSessionDelegate> dans votre fichier .h?

Pourriez-vous essayer d'initialiser GKSession sans displayName:

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

Assurez-vous qu'ils utilisent la même idSession. Essayez NULL comme identifiant de session à la place et l'application en fera un pour vous.

Questions connexes