Мне нужно было включить Bluetooth программно. Что я сделал, так это использовал GKPeerPickerController, он просит вас включить Bluetooth, если он еще не включен. Затем, при вызове GKPeerPickerControllerDelegate, я освобождаю сборщика.
Не идеально, вы увидите «Поиск устройств» на короткое время, но это работает из-за отсутствия другого способа сделать это (насколько я знаю).
GKPeerPickerController * peerpicker = [[GKPeerPickerController alloc]init];
peerpicker.delegate = self;
peerpicker.connectionTypesMask = GKPeerPickerConnectionTypeNearby;
[peerpicker show];
Когда peerpicker готов к поиску, существует метод делегата для возврата сеанса GKS для использования сборщиком. Это где вы отклоняете это.
-(GKSession*)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type
{
[picker dismiss];
[picker autorelease];
return nil;
}
И ваше приложение не будет отклонено.