iBeacon SDK su Android

ibeacon sdk

Possibili casi d'uso e modelli di business per il beacon che consente l'interazione dell'utente dipendente dalla posizione anche all'interno degli edifici sono attualmente oggetto di accesi dibattiti. Pubblicità e sconti in negozio, pagamenti mobili, navigazione, trasporto pubblico, la localizzazione negli edifici pubblici e nei musei e la domotica sono solo le punte dell'iceberg. E ovviamente l'onnipresente raccolta di dati – ora nuovo e con informazioni precise sulla posizione. Prima di saperne di più sulla tecnologia iBeacon, menzioneremo anche l'iBeacon SDK nell'articolo.

Qual è l'hype?

Il protocollo iBeacon sviluppato da Apple basato su Bluetooth Low Energy è supportato da una varietà di dispositivi. L'articolo spiega iBeacons e Bluetooth Low Energy e utilizza l'esempio dello sviluppo di un'app Android per liste della spesa dipendenti dalla posizione per mostrare l'interazione dipendente dalla posizione di un'app con iBeacons. L'implementazione è basata su MOKOSmart iBeacon SDK.

IBeacon, Bluetooth 4.0, DIVENNE, INTELIGENTE. Wot?

La tecnologia di base per iBeacon è il Bluetooth. Bluetooth a bassa energia (DIVENNE), che viene spesso definita etichetta di marketing Bluetooth Smart, è stato incluso nella versione 4.0 dello standard Bluetooth. BLE non è compatibile con le versioni precedenti chiamate Bluetooth Classic. Bluetooth 4.0 specifica che i dispositivi conformi agli standard devono implementare una o entrambe le varianti, vale a dire. Basso consumo energetico o classico.

BLE è implementato su quasi tutti gli smartphone attuali come l'iPhone 4+ e il Samsung Galaxy 3+. Un iPhone può funzionare sia come ricevitore di segnali iBeacon che – a differenza di Android – avere un faro si. Android include driver BLE dalla versione API 18, vale a dire. androide 4.3. Per inciso, i computer attuali sono anche compatibili con BLE. In Windows, però, i driver sono a bordo solo da Windows 8 e dalla metà del 2011 circa, BLE è disponibile sui computer Apple.

BLE continua a supportare una varietà di dispositivi periferici come cardiofrequenzimetri ed elicotteri giocattolo, termometri, attrezzature per il fitness e spazzolini da denti, sì, spazzolini da denti e scarpe da ginnastica.

Interessante in connessione con iBeacons è il sensore

Tag di Texas Instruments, che oltre alla sua funzione di iBeacon può misurare anche la temperatura, umidità, pressione, e accelerazione. Il Sensor Tag viene fornito anche con un giroscopio, un magnetometro, e due pulsanti hardware. Il dispositivo ideale per controllare a distanza le presentazioni durante la trasmissione e la visualizzazione dell'umidità e della temperatura delle mani del relatore. Penso che il mio prossimo progetto con la sabbiera sarà il palcoscenico. È possibile trovare un elenco dettagliato dei dispositivi sul sito Web Bluetooth ufficiale.

Pronto per il GATT

Il modello di comunicazione utilizzato dai dispositivi per lo scambio di dati è denominato GATT – Profilo attributo generico. GATT definisce i ruoli del client e del server. Il client richiede i dati dal server tramite i servizi. Un servizio raggruppa diverse coppie chiave / valore atomiche, che sono chiamate caratteristiche. Sia i servizi che le caratteristiche sono identificati tramite UUID e possono contenere anche ulteriori descrizioni. I servizi e le loro caratteristiche sono catalogati sotto forma di profili; la specifica definisce un'intera gamma di loro dai settori della sanità, sport e fitness e – nel nostro caso interessante – rilevamento di prossimità. I singoli profili, i relativi servizi e caratteristiche sono disponibili nel portale per sviluppatori Bluetooth sotto Specifiche GATT.

gatt ibeacon sdk

Raggiungi il faro

Allora cosa sono iBeacons? iBeacon è una tecnologia molto semplice (e un marchio di Apple che consente l'interazione dipendente dalla posizione con le applicazioni. Un beacon invia un segnale che può essere ricevuto con dispositivi compatibili BLE ed elaborato dalle applicazioni installate su di esso Signal contiene l'identificazione del beacon e la potenza di ricezione. gli stessi iBeacons lo sono, perciò – contrariamente alle dichiarazioni inesatte della stampa – incapace di fornire contenuti o monitorare il comportamento dei clienti. Questa è la responsabilità delle applicazioni riceventi e quindi degli sviluppatori.

iBeacon IRL

Le distribuzioni più ampie di iBeacons in Germania richiederanno probabilmente molto tempo, ma ci sono alcuni esempi dagli USA e dai Paesi Bassi. Per esempio, La Major League Baseball ha equipaggiato 28 stadi con iBeacons e li utilizza, tra l'altro, per i check-in nell'app MLB “Al Ballpark”.

Una vetrina è stata realizzata nella casa di Rubens ad Anversa, che offre informazioni di base come radiografie di dipinti e giochi di geocaching per i visitatori.

Il primo esempio in termini di dimensioni viene dalla stessa Apple. Al di sopra di 250 Gli Apple Store sono stati dotati di iBeacons. In combinazione con l'app Apple Store, i messaggi dipendenti dalla posizione vengono inviati agli acquirenti che si trovano nel negozio. però, le possibili interazioni attualmente sembrano essere piuttosto limitate: Le prime revisioni riportano solo due diversi (e abbastanza generico) messaggi che avrebbero ricevuto. Non sono state offerte offerte speciali o informazioni specifiche sui singoli prodotti nelle vicinanze.

Funzionalità

iBeacon SDK non utilizza un profilo BLE separato, ma piuttosto pacchetti pubblicitari Bluetooth, vale a dire. pacchetti di trasmissione, che vengono utilizzati per rilevare i dispositivi Bluetooth. Se sei interessato alla struttura esatta del pacchetto, puoi leggere questo, per esempio, sul blog di Adam Warski.

Tale pacchetto viene inviato a intervalli regolari che possono essere configurati tramite GATT. Contiene l'UUID del beacon, che è tipicamente preconfigurato dal produttore. Quindi tutti i beacon MOKOSmart inviano lo stesso UUID. Gli ID principali e secondari vengono utilizzati anche per identificare i singoli beacon. Gli ID principali possono rappresentare, per esempio, una filiale di un negozio o un ristorante di una catena in franchising, il minore identifica un singolo scaffale o una tabella.

inoltre, la potenza del segnale è inclusa nel pacchetto pubblicitario, che può essere utilizzato per misurare la distanza del ricevitore dal faro. però, non puoi aspettarti un'elevata precisione qui, poiché il segnale può essere ostruito da ostacoli spaziali come mobili o persone.

IBeacon SDK offre due concetti per l'interazione di un'app con queste informazioni: monitoraggio della portata e della regione. Quando si va, la distanza dal faro è determinata. A causa dell'inesattezza di cui sopra, questo avviene in sole tre fasi. “Immediato” è una distanza di pochi centimetri, “Vicino” è a pochi metri e “Lontano” è una distanza di oltre dieci metri. L'intervallo è possibile solo se l'app ricevente è attiva.

Questo non è necessario per il monitoraggio della regione. In questa modalità, un'app inattiva può anche essere avvisata quando si entra o si esce da una regione definita da uno o più beacon. Al più tardi ora sta diventando chiaro cosa rende questa tecnologia attraente per la pubblicità e la vendita al dettaglio. Inoltre, per la maggior parte dei beacon, la potenza di trasmissione e l'intervallo possono essere configurati in modo da ottimizzare la durata della batteria in base alle condizioni locali.

“La maggior parte dei beacon” implica che sul mercato sia presente più di un produttore di iBeacons. Infatti, ce ne sono un bel pò: MOKOSmart, Kontakt.io, Ghiaccio, Ti apprezzo, e Gimbal. Oltre all'hardware, questi produttori offrono anche il servizio iBeacon SDK e soluzioni cloud per la gestione dei beacon. Gli hobbisti tra di noi possono configurare i trasmettitori iBeacon da soli con uno sforzo relativamente piccolo utilizzando Raspberry Pi o Arduino.

Elenco lampeggiante

Supponiamo la seguente situazione per l'esempio di implementazione: Lo sviluppatore è al supermercato sabato mattina. I bambini affamati aspettano a casa e nel pomeriggio c'è una vendita di dolci a scuola. Solo allora inizierà davvero il weekend. Quindi buoni motivi per sbrigarsi. Sfortunatamente, la lista della spesa è lunga e non adatta alla disposizione del supermercato. Se il supermercato fosse dotato di iBeacons nei diversi reparti, un'app per la lista della spesa potrebbe evidenziare le voci appropriate e ridurre significativamente il livello di stress del file (ovviamente completamente immaginario) sviluppatore.

Poiché la nostra app deve comunicare con Bluetooth, per prima cosa richiediamo le autorizzazioni BLUETOOTH e BLUETOOTH_ADMIN nel manifest Android. Per poter utilizzare il servizio offerto dall'API Estimote per interagire con iBeacons, dobbiamo anche renderlo noto e posizionare l'API scaricata nella nostra directory libs /.

Il nostro prototipo consiste in un semplice, elenco precompilato e regioni predefinite, vale a dire. reparti del nostro supermercato. Una voce dell'elenco sa a quale regione è assegnata. Nel nostro esempio, assegniamo un solo beacon a ciascuna regione. È anche possibile combinare un elenco di beacon in una regione. L'attività principale è responsabile del riconoscimento della regione corrente e inoltra queste informazioni a un adattatore, responsabile dell'evidenziazione delle voci dell'elenco. Inoltre, aggiungiamo l'opzione per selezionare la regione attiva senza beacon per rendere la nostra interfaccia utente testabile senza hardware aggiuntivo.

Nell'attività sul metodo Crea, istanziamo un Beacon Manager da MOKOSmart per la nostra app. Usiamo un listener per il monitoraggio della regione rendendo nota la regione corrente al nostro adattatore e definendo l'intervallo per le scansioni beacon. Nell'esempio, definiamo che un secondo dovrebbe essere scansionato e poi 250 ms dovrebbe aspettare. Questi valori vengono scelti in modo relativamente aggressivo per ottenere risultati rapidi nei test. In realtà, il difficile equilibrio tra reattività vs. Per soddisfare la durata della batteria. In questo prototipo, riempiamo anche la nostra lista della spesa con valori fittizi. Avviamo o interrompiamo il monitoraggio in on () Start o onStop () metodo dell'attività principale.

ItemList

L'adattatore è implementato come derivato dell'adattatore android.widget.Array e sostituisce la visualizzazione get () metodo, che viene chiamato per ogni riga da visualizzare. Il titolo dell'articolo è scritto nella prima riga della recensione definita nel layout, nella seconda la regione assegnata.

Come si può vedere nella lista 1, la regione inserita viene trasferita all'adattatore nella regione inserita () callback di MonitoringListener, che viene assegnato al nostro BeaconManager: elenco articoli Adattatore. segregazione (regione). Quando si chiama getView (), questo controlla se la regione della voce nella riga corrisponde alla regione corrente. se questo è il caso, colora lo sfondo della linea. In aggiunta o in alternativa, è anche possibile inserire all'inizio le voci per la zona corrente ordinando l'elenco.

Il codice dell'applicazione è chiaro; Non sono necessarie molte implementazioni per ricevere i segnali iBeacon e gestirli nell'app. I concetti di gamma e monitoraggio di iBeacon sono mappati in MOKOSmart iBeacon SDK in modo che possano essere utilizzati in modo intuitivo. Il codice sorgente completo dell'app può essere trovato su GitHub.

Conclusione e prospettive

Abbiamo visto che interagire con iBeacons utilizzando MOKOSmart iBeacon SDK è facile. Quindi non mi aspetto grossi ostacoli alla tecnologia di implementazione, ma piuttosto nello spiegamento dei fari e nella messa a punto della potenza di trasmissione. Questi parametri hanno un impatto diretto sulla reattività dell'applicazione quando cambia la posizione. In ogni caso, il bilanciamento dovrebbe essere difficile.

Per particolarmente interessante, per esempio. B. nel settore della domotica, Considero la combinazione di iBeacons con sensori, come nel Sensor Tag di Texas Instruments menzionato sopra. Estimote lancerà anche beacon mobili con sensori di movimento e temperatura sul mercato con adesivi Estimote. Le prime anteprime degli sviluppatori avrebbero dovuto essere consegnate alla fine di ottobre 2014, ma nessun kit è stato spedito entro la fine del 2014.

Resta da vedere se l'area di applicazione "Navigazione interna" può essere mappata in modo affidabile con questa tecnologia. A causa della suscettibilità del segnale Bluetooth a fattori di interferenza, sarebbe necessaria una forte illuminazione con i segnali iBeacon dell'area corrispondente e calcoli di posizione utilizzando la triangolazione con le piante dei locali. Soluzioni appropriate sono offerte da MOKOSmart (SDK iBeacon per la navigazione interna) e vari altri produttori come LabWerk, ma l'autore non è a conoscenza di alcuna relazione pratica.

Con lo sviluppo di un'app che interagisce con iBeacons, devono essere presi in considerazione anche gli aspetti di sicurezza e protezione dei dati. A causa della semplicità del segnale, iBeacon è soggetto a spoofing, che non dovrebbe essere dimenticato durante lo sviluppo. Anche i dati come la posizione corrente e il profilo di movimento che possono essere raccolti in base al comportamento dell'utente hanno un elevato bisogno di protezione.

MOKOSMART iBeacon SDK

soluzione ibeacon sdk

 

Parla con un esperto