Sto lavorando per scansionare BLE in modalità Sfondo.Dispositivo Bluetooth LE scansione in background da iOS
Il problema non funziona in Scansione in background. Funziona molto bene in modalità Primo piano.
Di seguito sono riportate alcune righe di codice.
dispatch_queue_t centralQueue = dispatch_queue_create("com.XXXXX.BLEback", DISPATCH_QUEUE_SERIAL);// or however you want to create your dispatch_queue_t
manager = [[CBCentralManager alloc] initWithDelegate:self queue:centralQueue options:nil];
- (void)centralManagerDidUpdateState:(CBCentralManager *)central
{
if (central.state == CBCentralManagerStatePoweredOn) {
[self startScan];
}
if (![self supportLEHardware])
{
@throw ([NSError errorWithDomain:@"Bluetooth LE not supported"
code:999
userInfo:nil]);
}
}
- (void)startScan
{
NSDictionary * options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:false] forKey:CBCentralManagerScanOptionAllowDuplicatesKey];
[manager scanForPeripheralsWithServices:nil options:options];
}
qui sto passando a zero come un servizio.
Ricevo accesso alla sezione Dispositivi in Xcode. Ma non in applicazione.
Notice>: (Error) Discovered unknown type for scan: {
kCBAdvDataChannel = 37;
kCBAdvDataIsConnectable = 1;
kCBAdvDataManufacturerData = <00003962 6708f4c1 00000000 00d02b00 20d03300 20d03300 20>;
kCBAdvDataWSaturated = 0;
kCBAdvDataWlanRSSI = 0;
}, -51, puck type: 57
Si prega di mostrare più codice - in particolare il vostro 'metodo delegato centralManagerDidUpdateState' e dove si esegue il' scanForPeripheralsWithServices' in relazione alla ricezione della alimentato dallo stato in quel metodo delegato – Paulw11
@ Paulw11 domanda aggiornato con le linee di codice. –
Hai provato l'app LightBlue dall'app store per vedere se la tua periferica è rilevabile? – Paulw11