Вместо того чтобы использовать частную платформу BluetoothManager, почему бы не использовать общедоступную платформу Game Kit, которая предоставляет несколько методов для поддержки обнаружения и подключения двух устройств через Bluetooth и обмена данными между ними (, и она не ограничивается только использованием в играх несмотря на название )
Здесь есть довольно обширное руководство .
Вы можете использовать встроенный GKPeerPickerController или управлять им самостоятельно с помощью следующего
// create a session on each of your devices
GKSession *session = [[GKSession alloc] initWithSessionID:@"uniqueSessionID" displayName:@"deviceDisplayName" sessionMode:GKSessionModePeer
// set the delegate on the session
session.delegate = self;
убедитесь, что вы используете один и тот же идентификатор сеанса на всех устройствах, но сделайте имя уникальным для устройства
затем реализуйте следующий метод делегата
- (void)session:(GKSession *)session peer:(NSString *)peerID didChangeState:(GKPeerConnectionState)state
и когда новые узлы объявляют себя с тем же идентификатором сеанса, это будет вызвано, и их состояние должно быть
GKPeerStateAvailable