Ho un'app che ha bisogno di rilevare i dispositivi nelle vicinanze (nel raggio per Bluetooth LE) che eseguono la stessa applicazione e iOS 7.1. Ho considerato due alternative per la rilevazione:Come rilevare i dispositivi nelle vicinanze con Bluetooth LE in iOS 7.1 sia in background che in primo piano?
- Avere i dispositivi agire come iBeacons e rilevare iBeacons nella gamma
- Uso CoreBluetooth (come nella realizzazione Vicinity here) per creare una periferica BLE, pubblicizzare che e eseguire la scansione del periferiche
sembra che l'opzione 1 è fuori questione perché:
- si può prendere almeno 15 minuti per iOS a rilevano entrando in una regione faro quando l'applicazione è in esecuzione di sfondo (iOS 7,1)
opzione 2 sembra la strada da percorrere, ma ci sono alcune difficoltà per quanto riguarda l'attuazione:
- iOS sembra cambiare la periferica UUID nei pacchetti pubblicitari dopo un certo periodo di tempo (circa 15 minuti?). Ciò significa che non è direttamente possibile identificare il dispositivo pubblicitario dal segnale di trasmissione pubblicitaria.
A questo proposito, ho le seguenti domande:
- Ci sono altri metodi d'esecuzione del rilevamento dispositivo vicino che non ho preso in considerazione?
- È possibile identificare il dispositivo tramite la pubblicità (o con altri mezzi) in modo che l'opzione 2 funzioni?
una scansione dispositivo e promuovere al tempo stesso –
Sì, sembra così –
Questo post. è stato estremamente utile, grazie! Una nota, in didDiscoverPeripheral se la periferica che viene rilevata è in background al momento della scoperta l'UUID del servizio può essere trovato nell'annuncioData utilizzando CBAdvertisementDataOverflowServiceUUIDsKey invece di CBAdvertisementDataServiceUUIDsKey. – Tron5000