Skip to content

Commit 274ea48

Browse files
committed
Updated BluetoothSample (Added WiFi Connection)
1 parent bfad84f commit 274ea48

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

BluetoothSample/Classes/BluetoothSampleViewController.m

+29-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,8 @@ - (IBAction)connect:(id)sender
7474

7575
GKPeerPickerController* picker = [[GKPeerPickerController alloc] init];
7676
picker.delegate = self;
77-
picker.connectionTypesMask = GKPeerPickerConnectionTypeNearby;
77+
// picker.connectionTypesMask = GKPeerPickerConnectionTypeNearby;
78+
picker.connectionTypesMask = GKPeerPickerConnectionTypeOnline|GKPeerPickerConnectionTypeNearby;
7879
[picker show];
7980
}
8081
- (IBAction)sendPhoto:(id)sender
@@ -117,6 +118,21 @@ - (IBAction)sendText:(id)sender
117118
- (void)peerPickerController:(GKPeerPickerController *)picker didSelectConnectionType:(GKPeerPickerConnectionType)type
118119
{
119120
NSLog(@"%s|type=%d", __PRETTY_FUNCTION__, type);
121+
122+
if (type == GKPeerPickerConnectionTypeOnline) {
123+
picker.delegate = nil;
124+
[picker dismiss];
125+
[picker autorelease];
126+
127+
self.session = [[[GKSession alloc] initWithSessionID:nil
128+
displayName:nil
129+
sessionMode:GKSessionModePeer] autorelease];
130+
self.session.delegate = self;
131+
self.session.available = YES;
132+
[self.session setDataReceiveHandler:self withContext:nil];
133+
NSLog(@"self.session: %x", self.session);
134+
135+
}
120136
}
121137

122138
/*
@@ -130,7 +146,6 @@ - (void)peerPickerController:(GKPeerPickerController *)picker didConnectPeer:(NS
130146
{
131147
NSLog(@"%s|peerID=%@", __PRETTY_FUNCTION__, peerID);
132148

133-
self.peerID = peerID;
134149
self.session = session;
135150
session.delegate = self;
136151
[session setDataReceiveHandler:self withContext:nil];
@@ -151,6 +166,11 @@ - (void)peerPickerControllerDidCancel:(GKPeerPickerController *)picker
151166
#pragma mark GKSessionDelegate
152167
- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state
153168
{
169+
NSLog(@"---------------");
170+
NSLog(@"session: %x", session);
171+
NSLog(@"displayName: %@", [session displayNameForPeer:peerID]);
172+
173+
154174
NSString* stateDesc;
155175
if (state == GKPeerStateAvailable) stateDesc = @"GKPeerStateAvailable";
156176
else if (state == GKPeerStateUnavailable) stateDesc = @"GKPeerStateUnavailable";
@@ -160,16 +180,22 @@ - (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKP
160180
NSLog(@"%s|%@|%@", __PRETTY_FUNCTION__, peerID, stateDesc);
161181

162182
switch (state) {
183+
case GKPeerStateAvailable:
184+
NSLog(@"connecting to %@ ...", [session displayNameForPeer:peerID]);
185+
[session connectToPeer:peerID withTimeout:10];
186+
break;
187+
163188
case GKPeerStateConnected:
164189
self.message.text = @"connected";
165-
// self.peerID = peerID;
190+
self.peerID = peerID;
166191
break;
167192
case GKPeerStateDisconnected:
168193
self.message.text = @"disconnected";
169194
self.session = nil;
170195
default:
171196
break;
172197
}
198+
NSLog(@"---------------");
173199
}
174200

175201
/* Indicates a connection request was received from another peer.

0 commit comments

Comments
 (0)