iBeacon SDK op Android

ibeacon sdk

Mogelijke use cases en business modellen voor het baken die locatie-afhankelijke interactie van de gebruiker, zelfs binnen gebouwen worden momenteel hevig gedebatteerd in staat stelt. In-store reclame en kortingen, mobiele betalingen, navigatie, openbaar vervoer, lokalisatie in openbare gebouwen en musea en domotica zijn de uiteinden van de ijsberg. En natuurlijk de alomtegenwoordige verzamelen van gegevens – nu nieuw en met precieze locatie-informatie. Voordat meer te leren over iBeacon technologie, we zullen ook nog de iBeacon SDK in het artikel.

Wat is de hype?

De iBeacon protocol is ontwikkeld door Apple op basis van Bluetooth Low Energy wordt ondersteund door een groot aantal apparaten. Het artikel legt iBeacons en Bluetooth Low Energy en gebruikt het voorbeeld van het ontwikkelen van een Android-app voor de locatie-afhankelijke boodschappenlijstjes naar de locatie-afhankelijke interactie van een app met iBeacons tonen. De implementatie is gebaseerd op MOKOSmart iBeacon SDK.

iBeacon, Bluetooth 4.0, BLE, SLIM. Wot?

De basistechnologie voor iBeacon is Bluetooth. Bluetooth Low Energy (BLE), die wordt vaak aangeduid als de Bluetooth Smart marketing label, is opgenomen in versie 4.0 van de Bluetooth-standaard. BLE is niet achterwaarts compatibel met eerdere versies naam Bluetooth Classic. Bluetooth 4.0 specificeert dat normconforme inrichtingen één of beide varianten moeten toepassen, d.w.z.. Low Energy of Classic.

BLE wordt uitgevoerd op bijna alle huidige smartphones zoals de iPhone 4+ en de Samsung Galaxy 3+. Een iPhone kan zowel fungeren als ontvanger van signalen en iBeacon – in tegenstelling tot Android – hebben een baken zelf. Android bevat BLE drivers van API-versie 18, d.w.z.. Android 4.3. toevallig, de huidige computers zijn ook BLE-capable. in Windows, echter, de chauffeurs zijn alleen aan boord van Windows 8 en sinds ongeveer medio 2011, BLE beschikbaar is geweest op Apple computers.

BLE steeds verschillende randapparaten ondersteunen zoals hartslag monitoren en speelgoed helicopters, thermometers, fitness apparatuur en tandenborstels, Ja, tandenborstels en sneakers.

Interessant in verband met iBeacons wordt de sensor

Tag van Texas Instruments, die naast zijn functie als iBeacon kunnen meten, vochtigheid, druk, en versnelling. De sensor tag wordt ook geleverd met een gyroscoop, een magnetometer, en twee hardware knoppen. De ideale apparaat om op afstand controle presentaties tijdens het zenden en weergeven van de vochtigheid en de temperatuur van de handen van de spreker. Ik denk dat mijn volgende zandbak project zal plankenkoorts-o-mat. U kunt een gedetailleerde lijst met apparaten op de officiële Bluetooth website.

GATT klaar

Het communicatiemodel gebruiken inrichtingen voor het uitwisselen van gegevens wordt de GATT – Generic Attribute Profile. GATT worden de rollen van de client en server. Vraagt ​​de client gegevens van de server via diensten. Een dienst groepen enkele atomaire key / waardeparen, die worden genoemd kenmerken. Beide diensten en kenmerken worden geïdentificeerd via UUIDs en kan ook verdere beschrijvingen bevatten. Diensten en hun kenmerken worden gecatalogiseerd in de vorm van profielen; de specificatie definieert een hele reeks daarvan uit het gebied van gezondheidszorg, sport en fitness en – in ons geval interessant – afstandsmeeting. De individuele profielen en hun diensten en eigenschappen kan worden gevonden in de Bluetooth-ontwikkelaar portal kader van de GATT Specificaties.

gatt ibeacon sdk

Get to the beacon

Dus wat zijn iBeacons? iBeacon is een zeer eenvoudige technologie (en een handelsmerk van Apple die locatie-afhankelijke interactie met toepassingen mogelijk maakt. Een baken zendt een signaal dat kan worden ontvangen met BLE-compatibele apparaten en verwerkt door programma is geïnstalleerd signaal bevat de identificatie van het baken en de ontvangststerkte. iBeacons zelf zijn, daarom – in tegenstelling tot onjuiste verklaringen in de pers – niet in staat om de inhoud of track gedrag van klanten te leveren. Dit is de verantwoordelijkheid van de ontvangende toepassingen en daarom ontwikkelaars.

iBeacon IRL

Grotere implementaties van iBeacons in Duitsland zal waarschijnlijk een lange tijd te komen, maar er zijn enkele voorbeelden uit de Verenigde Staten en Nederland. Bijvoorbeeld, De Major League Baseball is uitgerust 28 stadions met iBeacons en gebruikt deze, onder andere, voor check-ins in de MLB app “At the Ballpark”.

Een showcase werd in het Rubenshuis in Antwerpen geïmplementeerd, die biedt achtergrondinformatie, zoals röntgenfoto's van schilderijen en geocaching games voor bezoekers.

Het eerste voorbeeld in termen van grootte komt van Apple zelf. Over 250 Apple Stores zijn uitgerust met iBeacons. In combinatie met de Apple Store-app, locatie-afhankelijke berichten worden verzonden naar kopers die in de winkel. Echter, lijken de mogelijke interacties momenteel vrij beperkt: Eerste reviews rapporteren slechts twee verschillende (en heel generieke) berichten die zij zouden hebben ontvangen. Speciale aanbiedingen of specifieke informatie over individuele producten in de omgeving waren niet aangeboden.

functionaliteit

iBeacon SDK heeft geen aparte BLE profiel gebruiken, maar Bluetooth reclame-pakketten, d.w.z.. broadcast-pakketten, die worden gebruikt om Bluetooth-apparaten te ontdekken. Als u geïnteresseerd bent in de exacte samenstelling van het pakket, u kunt dit lezen, bijvoorbeeld, op de blog van Adam Warski's.

Een dergelijke verpakking wordt verzonden periodiek of via GATT kan worden geconfigureerd. Het bevat de UUID van het baken, die typisch geconfigureerd door de fabrikant. Dus alle MOKOSmart bakens sturen dezelfde UUID. Grote en kleine ID's worden ook gebruikt om de individuele bakens te identificeren. Major-ID's kan vertegenwoordigen, bijvoorbeeld, een tak van een winkel of een restaurant in een franchise-keten, de minderjarige IDs een enkele plank of een tafel.

voorts, de signaalsterkte is opgenomen in de reclame-pakket, die kan worden gebruikt om de afstand van de ontvanger meet van het baken. Echter, je kunt niet verwachten hoge nauwkeurigheid hier, aangezien het signaal kan worden belemmerd door de ruimtelijke obstakels zoals meubels of mensen.

IBeacon SDK biedt twee concepten voor de interactie van een app met deze informatie: gaande en omgeving bewaken. wanneer variërend, de afstand tot het baken wordt bepaald. Vanwege de onnauwkeurigheid bovengenoemde, dit gebeurt in drie fasen. “onmiddellijk” een afstand van enkele centimeters, “In de buurt” is een paar meter en “Ver” een afstand van meer dan tien meter. Variërend is alleen mogelijk als de ontvangende app is actief.

Dit is niet nodig voor de regio bewaking. In deze modus, een inactieve app kan ook worden gemeld bij het binnenkomen of verlaten van een gebied dat wordt gedefinieerd door één of meer bakens. Uiterlijk nu wordt duidelijk wat maakt deze technologie aantrekkelijk voor reclame en detailhandel. Daarnaast, voor de meeste bakens, de overdrachtsterkte en interval om de batterij te optimaliseren worden geconfigureerd op basis van lokale omstandigheden.

“De meeste bakens” impliceert dat er meer dan een fabrikant van iBeacons op de markt. In feite, Er zijn nogal wat: MOKOSmart, Kontakt.io, ijs, Estimote, en Gimbal. In aanvulling op de hardware, deze fabrikanten bieden ook iBeacon SDK service en cloud-oplossingen voor het beheer van bakens. De hobbyisten onder ons kan het opzetten van iBeacon zenders zich met relatief weinig moeite met behulp van Raspberry Pi of Arduino.

Knipperend lijst

Laten we aannemen dat de volgende situatie voor de uitvoering voorbeeld: De ontwikkelaar is in de supermarkt op zaterdagochtend. Hongerige kinderen wachten thuis en in de middag is er een bak te koop op school. Alleen dan zal het weekend echt beginnen. Dus goede redenen om opschieten. helaas, het boodschappenlijstje is lang en niet aangepast aan de lay-out van de supermarkt. Als de supermarkt waren uitgerust met iBeacons in de verschillende afdelingen, een boodschappenlijstje app zou de juiste vermeldingen markeren en een aanzienlijke vermindering van de stress niveau van de (natuurlijk volledig fictieve) ontwikkelaar.

Sinds onze app heeft om te communiceren met Bluetooth, we voor het eerst vereisen Bluetooth en BLUETOOTH_ADMIN vergunningen in het Android-manifest. Om te kunnen om de dienst aangeboden door de Estimote API om te communiceren met iBeacons gebruiken, moeten we ook kenbaar maken en plaats het gedownloade API in onze libs / directory.

Ons prototype bestaat uit een eenvoudige, voorgevulde lijst en vooraf gedefinieerde gebieden, d.w.z.. afdelingen in onze supermarkt. Een vermelding in de lijst weet welke regio het wordt toegewezen aan. In ons voorbeeld, we alleen Wijs een baken voor elke regio. Het is ook mogelijk om een ​​lijst van bakens te combineren in één regio. De belangrijkste activiteit is verantwoordelijk voor het herkennen van het huidige gebied en stuurt deze informatie naar een adapter, die verantwoordelijk is voor het benadrukken van de lijst met inzendingen. Daarnaast, voegen we de optie om het actieve gebied zonder bakens te selecteren om onze UI toetsbaar te maken zonder extra hardware.

In de activiteit is op Create methode, we instantiëren een Beacon Manager van MOKOSmart voor onze app. We maken gebruik van een luisteraar voor de regio het toezicht door het maken van het huidige gebied waarvan bekend is dat onze adapter en het definiëren van het interval voor het baken scans. In het voorbeeld, We definiëren die ene seconde moet worden gescand en vervolgens 250 ms moet wachten. Deze waarden zijn relatief agressief gekozen om snel resultaat in-tests. In werkelijkheid, het moeilijke evenwicht tussen responsiviteit vs. Om te voldoen aan Battery Life. In dit prototype, we ook onze boodschappenlijstje met dummy waarden vullen. We starten of te stoppen toezicht bij het op () Start of onStop () Werkwijze voor de hoofdactiviteit.

de ItemList

De adapter is geïmplementeerd als een afgeleide van android.widget.Array Adapter en voorrang op de get View () methode, die wordt genoemd voor elke lijn worden weergegeven. De titel van het artikel is geschreven in de eerste regel van de herziening is gedefinieerd in de lay-out, in de tweede de toegewezen gebied.

Zoals te zien is in listing 1, de ingevoerde regio wordt overgedragen aan de adapter in de op ingevoerde Region () callback van de MonitoringListener, die is toegewezen aan onze BeaconManager: lijst met items Adapter. segregatie (regio). Bij het aanroepen van getView (), Deze controleert of de regio van de inschrijving in de lijn overeenkomt met de huidige regio. Als dit de zaak is, het kleurt de achtergrond van de lijn. Daarnaast of als alternatief, men kan ook zet de inzendingen voor de huidige zone aan het begin van de lijst te sorteren.

De code van de aanvraag duidelijke; het maakt niet veel implementaties poging om iBeacon signalen te ontvangen en verwerken ze in de app te nemen. De iBeacon concepten variëren en controle worden gebracht in de MOKOSmart iBeacon SDK zodat deze intuïtief gebruik. De volledige broncode van de app is te vinden op GitHub.

Conclusie en vooruitzichten

We zagen dat de interactie met iBeacons met behulp van de MOKOSmart iBeacon SDK is makkelijk te doen. Dus ik verwacht geen grote obstakels in de technologie van toepassing, maar in de inzet van de bakens en de afstemming van het zendvermogen. Deze parameters hebben een directe invloed op de reactie van de applicatie als de locatie verandert. In elk geval, het in evenwicht brengen moet moeilijk zijn.

Voor bijzonder interessant, bv. B. op het gebied van domotica, Ik beschouw de combinatie van sensoren iBeacons, zoals in de Sensor Tag van Texas Instruments bovengenoemde. Estimote zal ook mobiele bakens met bewegings- en temperatuursensoren te lanceren op de markt met Estimote Stickers. De eerste ontwikkelaar previews moeten zijn afgeleverd aan het eind oktober 2014, maar geen kits werden verzonden aan het eind van 2014.

Het valt nog te bezien of de “Indoor Navigation” toepassingsgebied robuust kan in kaart worden gebracht met deze technologie. Vanwege de gevoeligheid van het Bluetooth signaal-factoren, sterke belichting met iBeacon signalen van het overeenkomstige stippellijn positieberekeningen gebruik driehoeksmeting met ruimte plannen zouden moeten worden. Passende oplossingen worden aangeboden door MOKOSmart (Indoor Navigation iBeacon SDK) en diverse andere fabrikanten zoals LabWerk, maar de auteur is niet bewust van enige praktische rapporten.

Met de ontwikkeling van een app interactie met iBeacons, beveiliging en gegevensbescherming aspecten moet ook rekening worden gehouden met. Vanwege de eenvoud van het signaal, iBeacon is gevoelig voor spoofing, die niet mag worden vergeten tijdens de ontwikkeling. Gegevens zoals de huidige locatie en het bewegingsprofiel dat verzameld kan worden op basis van gebruikersgedrag ook een grote behoefte aan bescherming.