Ich schreibe eine Anwendung für iOS, die erfordert, dass die Anwendung sowohl ein iOS iBeacon ankündigen als auch periphere Dienste gleichzeitig bewerben. Es ist notwendig, dass der Dienst eher angekündigt wird, als einfach auf dem Peripheriegerät zu finden, weil der Anwendungsfall die zentrale (im BLE-Sprachgebrauch) Verbindung zum Peripheriegerät erfordert, nachdem iOS (aber immer noch im Hintergrund) wegen der Nähe zum iBeacon geweckt wurde. Apps, die im Hintergrund auf Zentralen ausgeführt werden, können Peripheriegeräte nur nach verfügbarem Dienst erkennen, anstatt alle Peripheriegeräte zu erkennen []; Mein Code funktioniert, um entweder den Dienst oder den iBeacon zu bewerben, aber ich habe nicht herausgefunden, wie man beides gleichzeitig macht. Es ist möglich, dass der iBeacon 21 Bytes der 38 Bytes verfügbaren Speicherplatzes nutzt und es nicht einfach genug Platz gibt, um einen Beacon sowie einen Dienst zu bewerben?iOS CoreBluetooth/iBeacon: Werben ein iBeacon und einen peripheren Dienst gleichzeitig
Das funktioniert (Leuchtfeuer):
self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
major:1
minor:1
identifier:@"bentboolean"];
NSMutableDictionary *dict = [[self.beaconRegion peripheralDataWithMeasuredPower:nil] mutableCopy];
[self.peripheralManager startAdvertising:dict ];
Dies funktioniert (Service):
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setValue:@[serviceUUID] forKey:CBAdvertisementDataServiceUUIDsKey];
[self.peripheralManager startAdvertising:dict ];
die beiden zusammen Hinzufügen, versuchen beide Dienste gleichzeitig werben nicht funktioniert. Es wirbt nur die Beacon, nicht die Dienstleistung:
self.beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:uuid
major:1
minor:1
identifier:@"bentboolean"];
NSMutableDictionary *dict = [[self.beaconRegion peripheralDataWithMeasuredPower:nil] mutableCopy];
[dict setValue:@[serviceUUID] forKey:CBAdvertisementDataServiceUUIDsKey];
[self.peripheralManager startAdvertising:dict ];
Danke für einen Blick!
Hallo, hast du das jemals behoben? Ich glaube nicht, dass es aufgrund der Kapazität von Bluetooth möglich ist ... – CW0007007