6

Je dois obtenir la liste des appareils Bluetooth couplés (appareils iOS) comme la liste dans la section «Bluetooth» dans les paramètres iOS, comme indiqué dans l'image ci-dessous.Comment obtenir la liste des appareils Bluetooth couplés dans swift?

enter image description here

Est-il possible?
Avez-vous vu des applications faisant ce type de fonctionnalité?

J'ai essayé ce qui suit: link1, link2, link3, link4, link5, link6

Mais rien ne m'a aidé clairement à obtenir la liste exacte. J'espère qu'il devrait y avoir un moyen d'y parvenir. S'il vous plaît aidez-moi en partageant votre expérience. Merci.

+1

Vous pouvez récupérer les détails des dispositifs BLE qui sont couplés/connectés, mais pas des dispositifs existants tels que les casques d'écoute/mains libre etc – Paulw11

+0

D'accord, merci. Pouvez-vous me fournir les directives concernant la solution de travail pour faire la liste des périphériques BLE qui sont couplés/connectés? –

+0

@ Paulw11 Je serais également intéressé car je ne connais pas d'API qui répertorie les périphériques déconnectés. Pour les périphériques connectés, il existe le [- retrieveConnectedPeripheralsWithServices:] (https://developer.apple.com/library/ios/documentation/CoreBluetooth/Reference/CBCentralManager_Class/index.html#//apple_ref/occ/instm/CBCentralManager/retrieveConnectedPeripheralsWithServices: API. – allprog

Répondre

0

Vous devez trouver le UUID de service dans lequel vous êtes intéressé, dans mon cas, il fonctionne parfaitement,

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerScanOptionAllowDuplicatesKey, nil]; 
[self.centralManager scanForPeripheralsWithServices:@[[CBUUID UUIDWithString:SERVICE_UUID]] 
              options:options]; 

et quand il trouvera un appareil qui vantent même UUID de service, il apparaît dans la écran que vous avez pointé au-dessus.

poignée didDiscoverperipherel de cette façon:

-(void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI{ 

    _discoveredPeripheral = peripheral; 

    if(![self.mRemoteDevices containsObject:_discoveredPeripheral]) 
    { 
     NSArray *peripherels = [self.centralManager retrievePeripheralsWithIdentifiers:@[_discoveredPeripheral.identifier]]; 
     [self.mRemoteDevices addObject:[peripherels objectAtIndex:0]]; 
    } 
} 
+0

J'ai seulement requis la liste appariée, Juste les noms suffisent pour moi. Quel UUID je dois utiliser pour cela. –

+0

Faites attention car vous ne pouvez pas distinguer les périphériques par UUID seul. – Zimano

+0

vous ne pouvez pas récupérer des appareils simplement, vous devez avoir un UUID de service qui vous intéresse. – manish

1

Il est possible d'obtenir la liste des périphériques connectés par paires/si seulement vous avez leur publicité UUID.

dispatch_queue_t centralQueu = dispatch_queue_create("A_NAME", NULL); 
_centralManager = [[CBCentralManager alloc] 
           initWithDelegate:self 
           queue:centralQueu 
           options: @{CBCentralManagerOptionRestoreIdentifierKey:@"RESTORE_KEY", 
              CBCentralManagerOptionShowPowerAlertKey: @YES}]; 
_ServiceUUIDs = @[[CBUUID UUIDWithString:@"THE_UUID"]] //the array of CBUUIDs which you are looking for 
[_centralManager retrieveConnectedPeripheralsWithServices:_ServiceUUIDs] 

Vous pouvez obtenir les dispositifs BLE annonce UUID en utilisant certaines applications iOS, comme LightBlue et nRFConnect