Lo scenario è il seguente. Ho un'app già utilizzata dalle persone. Sono considerando implementando alcune funzionalità sperimentali Bluetooth Low Energy, ma prima di farlo, voglio condurre un sondaggio "in the wild" del numero di utenti che hanno già attivato il Bluetooth/lasciano Bluetooth in qualsiasi momento. Quindi, vorrei solo controllare questo in background e rispedire a un server le statistiche sul numero di utenti con Bluetooth già acceso, senza mai effettivamente utilizzare le comunicazioni Bluetooth.iOS CoreBluetooth controlla passivamente se il Bluetooth è abilitato senza chiedere all'utente di attivare il Bluetooth su
Ho istanziato con successo un CBCentralManager
nella mia app e posso recuperare lo stato Bluetooth sia immediatamente dopo l'istanziazione e quando lo stato Bluetooth aggiorna tramite centralManagerDidUpdateState:
. Quindi va tutto bene. Il problema che sto avendo è che se lo stato è CBCentralManagerStatePoweredOff
, il dispositivo richiama un avviso che richiede all'utente di "Attivare Bluetooth per consentire a [nome app] di connettersi agli accessori". È questo il prompt che sto tentando di evitare. In questa fase desidero semplicemente controllare il numero di utenti che lasciano Bluetooth attivo: non desidero utilizzare la connessione Bluetooth.
Quindi, c'è un modo per controllare lo stato Bluetooth senza chiedere conferma all'utente se non si intende utilizzare la connessione Bluetooth?
Bella scoperta. Ti riferisci a 'CBCentralManagerOptionShowPowerAlertKey'? Se decidi di espandere la tua risposta per specificare quale chiamata è passata a/link per ulteriori informazioni, contrassegnerò questa risposta accettata. Altrimenti farò una modifica su questa risposta quando avrò la possibilità di guardarla di nuovo in modo più dettagliato. –
Sì, utilizzare CBCentralManagerOptionShowPowerAlertKey, provare myCentralManager = [[CBCentralManager alloc] initWithDelegate: self queue: nil options: @ {CBCentralManagerOptionShowPowerAlertKey: [NSNumber numberWithBool: NO]}]; –