Sto usando Bluetooth LE su iPhone 5S e ho fatto quanto segue:Bluetooth LE, scanForPeripheralsWithServices in background, aumentare la velocità
Ho una periferica Bluetooth e ho configurato per pubblicizzare ogni 20 ° ms su tutti e tre i canali pubblicitari bluetooth (37, 38 e 39).
Ho configurato il mio app con UIBacgroundModes = bluetooth nel centro-Info.plist
ho iniziato uno scanForPeripheralsWithServices come qui di seguito
Codice:
NSDictionary *options = @{
CBCentralManagerOptionRestoreIdentifierKey:@"myCentralManagerIdentifier",
CBCentralManagerScanOptionAllowDuplicatesKey:[NSNumber numberWithBool:YES]
};
self.manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil options:options];
[self.manager scanForPeripheralsWithServices:[NSArray arrayWithObject:[CBUUID UUIDWithString:@"<uuid removed>"]] options:options];
L'attuale stato è:
In modalità primo piano l'applicazione riceve rapidamente messaggi pubblicitari quando inizio la mia periferica (entro un secondo)
in background l'applicazione a volte riceve messaggi pubblicitari all'interno come 10 secondi dopo l'inizio della periferica (che può essere accettabile anche se è male) ma spesso non riceve la pubblicità per un tempo molto lungo (minuti o più) e questo non funziona per l'applicazione.
domanda è:
E 'in qualche modo possibile aumentare la velocità di cui iOS è la scansione per il Bluetooth 4.0 LE periferiche quando l'applicazione di scansione è in background? Dal momento che non penso che ci sia un'API pubblica per farlo, sto cercando un'API privata che non sia pubblicata da Apple. Questo è per un'app aziendale interna, quindi un'API privata sarebbe perfettamente OK.
@jesnolsson Come trovare CBUUID all'avvio dell'app? voglio farlo nel mio progetto. –
Probabilmente dovresti scrivere una nuova domanda su SO .. Ma per iniziare devi solo seguire il mio codice qui sopra. L'UUID effettivo dei Servizi è specifico per il tipo di accessorio Bluetooth LE che hai, quindi devi guardare i numeri attuali. Vorrei raccomandare LightBlue disponibile su App Store per questo scopo. –