2011-01-20 84 views
1


我有三個設備(mac,ipod,iphone),它們都連接到wi-fi。當我測試應用程序,連接兩個設備,都要求打開藍牙,但無論如何,他們想要使用Wi-Fi。如何強制他們使用藍牙而不是Wi-Fi。使用GKPeerPickerController連接兩個設備

GKPeerPickerController*  picker; 
picker = [[GKPeerPickerController alloc]init]; 
picker.delegate = self; 
picker.connectionTypesMask = GKPeerPickerConnectionTypeNearby; //Here, I suppose, program should use BlueTooth(but it uses the same network). 
[picker show]; 

但是,如果一個設備沒有連接到Wi-Fi,一切工作正常。
爲什麼將connectionTypesMask設置爲GKPeerPickerConnectionTypeNearby首先使用Internet連接,然後才使用藍牙連接?如何強制只使用藍牙?

回答

0

我發現這樣做的唯一方法:關閉MacBook機場並打開BT。

0

此代碼爲GKPeerPickerController委託方法是由馬克和LAMARCHE開始的iOS 5開發:

-(GKSession*)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type 
{ 
GKSession *theSession; 
if (type == GKPeerPickerConnectionTypeNearby) 
{ 
    theSession = [[GKSession alloc] initWithSessionID:kTicTacToeSessionID displayName:nil sessionMode:GKSessionModePeer]; 
} 
return theSession; 
} 

這將確保只連接BT會議。在他們的示例項目中,peerPicker的一些隱藏功能使設備要求您打開藍牙。