Za´padoˇceska´ univerzita v Plzni Fakulta aplikovany´ch vˇed Katedra informatiky a vy´poˇcetn´ı techniky
Diplomov´ a pr´ ace Komunikace a identifikace informaˇ cn´ıch maj´ ak˚ u
Plzeˇ n 2013
Bc. Jiˇr´ı Hrom´adka
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem diplomovou pr´aci vypracoval samostatnˇe a v´ yhradnˇe s pouˇzit´ım citovan´ ych pramen˚ u. V Plzni dne 14. kvˇetna 2013 Bc. Jiˇr´ı Hrom´adka
Dˇekuji vedouc´ımu pr´ace Ing. Ladislavu Peˇsiˇckovi za odborn´e veden´ı a cenn´e rady pˇri vypracov´an´ı diplomov´e pr´ace.
Abstract This diploma thesis deals with communication and identification of information beacons. Information beacon is either visible or invisible element (or system of elements), which can be detected by smartphone or tablet, and information content, can be read from it. In this thesis there is also designed the usage of various technologies and methods that can be used to identify information beacons around user, both inside buildings and in outdoor areas. The result of this thesis is a mobile application for the Android platform that communicates with prepared system of information beacons and provides the user with information content based on his location or effort to obtain information
Obsah ´ 1 Uvod 1.1 Informaˇcn´ı maj´aky . . . . . . . . . . . . . . . . . . . . . . . . 1.2 C´ıl pr´ace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Existuj´ıc´ı syst´ emy informaˇ cn´ıch maj´ ak˚ u 2.1 V´ yznam informaˇcn´ıch maj´ak˚ u . . . . . . 2.2 Google Maps . . . . . . . . . . . . . . . 2.2.1 V´ yhody a nev´ yhody . . . . . . . 2.3 Google Indoor Maps . . . . . . . . . . . 2.3.1 V´ yhody a nev´ yhody . . . . . . . 2.4 RedPin . . . . . . . . . . . . . . . . . . . 2.4.1 Algoritmus urˇcen´ı polohy . . . . . 2.4.2 V´ yhody a nev´ yhody . . . . . . . 2.5 TripAdvisor . . . . . . . . . . . . . . . . 2.5.1 V´ yhody a nev´ yhody . . . . . . . 2.6 ByteLight . . . . . . . . . . . . . . . . . 2.6.1 V´ yhody a nev´ yhody . . . . . . . 2.7 Syst´emy pro konkr´etn´ı instituce . . . . . 2.7.1 V´ yhody a nev´ yhody . . . . . . . 2.7.2 iTAG.cz . . . . . . . . . . . . . .
1 1 1
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
2 2 4 5 5 6 7 8 9 9 10 11 11 12 12 12
3 Moˇ znosti identifikace informaˇ cn´ıch maj´ ak˚ u 3.1 Pojem Indoor positioning . . . . . . . . . . . 3.2 GPS . . . . . . . . . . . . . . . . . . . . . . 3.3 QR k´od . . . . . . . . . . . . . . . . . . . . 3.3.1 Jak pˇreˇc´ıst QR k´od . . . . . . . . . . 3.3.2 Dostupn´e knihovny . . . . . . . . . . 3.4 WiFi . . . . . . . . . . . . . . . . . . . . . . 3.4.1 WiFi otisky . . . . . . . . . . . . . . 3.4.2 WiFi triangulace . . . . . . . . . . . 3.4.3 Omezen´ı mobiln´ıch platforem . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
. . . . . . . . .
14 14 14 15 15 17 18 19 20 20
. . . . . . . . . . . . . . .
OBSAH
3.5
3.6
3.7 3.8 3.9 3.10 3.11
3.12 3.13
OBSAH 3.4.4 WiMax . . . . . . . . . . . . . Bluetooth . . . . . . . . . . . . . . . . 3.5.1 Vyuˇzit´ı . . . . . . . . . . . . . . 3.5.2 Omezen´ı mobiln´ıch platforem . Near Field Communication . . . . . . . 3.6.1 Typy tag˚ u, komunikace . . . . . 3.6.2 Vyuˇzit´ı . . . . . . . . . . . . . . 3.6.3 Zabezpeˇcen´ı vs. interaktivita . . Locata . . . . . . . . . . . . . . . . . . 3.7.1 Vyuˇzit´ı . . . . . . . . . . . . . . Rozpozn´an´ı obrazu sc´eny . . . . . . . . LED diody . . . . . . . . . . . . . . . . 3.9.1 Vyuˇzit´ı . . . . . . . . . . . . . . Zvuk . . . . . . . . . . . . . . . . . . . 3.10.1 Vyuˇzit´ı . . . . . . . . . . . . . . Dalˇs´ı metody . . . . . . . . . . . . . . 3.11.1 Metody z´avisl´e na znalostech . 3.11.2 Metoda zaloˇzen´a na vˇs´ımavosti Odhalen´ı podvod˚ u . . . . . . . . . . . 3.12.1 Spojen´ı s GPS polohou . . . . . Pˇr´ınos pro instituci . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
4 Platforma Android 4.1 Novinky . . . . . . . . . . . . . . . . . . 4.1.1 Project Butter . . . . . . . . . . 4.1.2 Vloˇzen´e fragmenty . . . . . . . . 4.1.3 Action Bar . . . . . . . . . . . . 4.1.4 API podpory r˚ uzn´ ych obrazovek . 4.2 Pˇrehled verz´ı . . . . . . . . . . . . . . . 4.2.1 Support Library . . . . . . . . . . 4.3 Fragmenty . . . . . . . . . . . . . . . . . 4.3.1 Komunikace s aktivitou . . . . . 4.4 Vhodnost pro realizaci klienta . . . . . . 5 Mobiln´ı klient pro platformu Android 5.1 Popis vytvoˇren´eho syst´emu Tagiee . . . . 5.2 N´avrh aplikace . . . . . . . . . . . . . . 5.2.1 Funkce aplikace . . . . . . . . . . 5.2.2 N´avrh UI . . . . . . . . . . . . . 5.2.3 Komunikace se syst´emem Tagiee . 5.2.4 Jedineˇcn´a identifikace zaˇr´ızen´ı . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
. . . . . .
. . . . . . . . . . . . . . . . . . . . .
21 21 22 22 23 24 25 26 26 26 27 28 28 29 29 30 30 31 31 32 32
. . . . . . . . . .
33 33 33 34 34 35 35 36 36 39 40
. . . . . .
41 41 42 42 45 45 47
OBSAH
OBSAH
. . . . . . . . . . . . . . . . . . .
48 51 53 54 55 56 57 58 59 59 60 61 62 64 64 66 67 68 69
6 Ovˇ eˇ ren´ı funkˇ cnosti ˇ Bory . . . . . . . . . . . . 6.1 Modelov´a situace - DOD are´al ZCU ˇ 6.2 Ovˇeˇren´ı funkˇcnosti - Are´al ZCU Bory . . . . . . . . . . . . . . 6.2.1 V´ ysledky ovˇeˇren´ı . . . . . . . . . . . . . . . . . . . . .
70 70 70 72
7 Z´ avˇ er
75
5.3
5.4
5.5 5.6 5.7 5.8
5.9
5.2.5 Algoritmus hled´an´ı polohy . . . 5.2.6 Od˚ uvodnˇen´ı opr´avnˇen´ı aplikace Google apis . . . . . . . . . . . . . . . 5.3.1 Google Maps Android API v2 . 5.3.2 YouTube Data API v3 . . . . . Pouˇzit´ı NFC . . . . . . . . . . . . . . . 5.4.1 The Tag Dispatch System . . . 5.4.2 Foreground Dispatch System . . 5.4.3 NDEF form´at . . . . . . . . . . Implementace QR ˇcteˇcky . . . . . . . . Datab´aze . . . . . . . . . . . . . . . . Verze pro tablety . . . . . . . . . . . . 5.7.1 Podpora r˚ uzn´ ych obrazovek . . Tagiee Admin . . . . . . . . . . . . . . 5.8.1 Funkce aplikace . . . . . . . . . 5.8.2 Pˇr´ıprava NFC tagu . . . . . . . Uk´azky aplikac´ı . . . . . . . . . . . . . 5.9.1 Tagiee . . . . . . . . . . . . . . 5.9.2 Tagiee Admin . . . . . . . . . .
A Pˇ r´ılohy A.1 Struktura CD . . . . . . . . . . . . . A.2 Uˇzivatelsk´a pˇr´ıruˇcka . . . . . . . . . A.2.1 Instalace aplikace . . . . . . . A.2.2 Pouˇz´ıv´an´ı aplikace . . . . . . A.3 Seznam JSON poˇzadavk˚ u a odpovˇed´ı A.3.1 add_review . . . . . . . . . . A.3.2 beacon_found . . . . . . . . . A.3.3 device_visit_institution . A.3.4 get_institution_by_uiid . A.3.5 get_institution_list . . . A.3.6 get_institution_revision . A.3.7 get_reviews . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
i . i . ii . ii . ii . iv . iv . iv . v . v . vii . vii . viii
´ 1 Uvod 1.1
Informaˇ cn´ı maj´ aky
Informaˇcn´ı maj´ak nen´ı ve vˇetˇs´ı m´ıˇre zaveden´ y pojem a proto n´asleduje jeho definice pro tuto pr´aci. Informaˇcn´ı maj´ak pˇredstavuje jak´ ykoliv at’ uˇz viditeln´ y, nebo neviditeln´ y fyzick´ y prvek (ˇci soustavu fyzick´ ych prvk˚ u), kter´ y lze prostˇrednictv´ım mobiln´ıho chytr´eho“ zaˇr´ızen´ı detekovat a pˇreˇc´ıst v nˇem ” uloˇzen´e informace nebo na z´akladˇe identifikace informaˇcn´ıho maj´aku si o pˇr´ısluˇsn´e informace automaticky zaˇza´dat napˇr. na serveru, kter´ y m˚ uˇze b´ yt um´ıstˇen´ y v s´ıti Internet. V souˇcasn´e dobˇe jsou mobiln´ı chytr´a“ zaˇr´ızen´ı (tzv. smartphone) celosvˇe” tovˇe rozˇs´ıˇren´a a vytv´aˇr´ı jak´ ysi pomysln´ y most mezi dˇr´ıve oddˇelen´ ymi obory. Umoˇzn ˇuj´ı zv´ yˇsit m´ıru interakce, aktu´alnost informac´ı a d´avaj´ı moˇznost nab´ıdnout uˇzivateli vˇse, co by mohl v dan´em okamˇziku potˇrebovat a cht´ıt. Z tˇechto d˚ uvod˚ u je ide´aln´ı vyuˇz´ıt tato chytr´a“ zaˇr´ızen´ı pro syst´em informaˇcn´ıch ma” j´ak˚ u. Tento fakt nav´ıc podporuje skuteˇcnost, ˇze ˇc´ım d´al t´ım vˇetˇs´ı procento mobiln´ıch zaˇr´ızen´ı m´a dostupn´e aktivn´ı pˇripojen´ı k s´ıti Internet. ˇ ala vyuˇzit´ı syst´em˚ Sk´ u informaˇcn´ıch maj´ak˚ u je velice pestr´a. Nˇekter´e jiˇz zaveden´e syst´emy jsou pops´any v kapitole 2, d´ale je pak v kapitole 6 n´azorn´ y modelov´ y pˇr´ıklad pro vytvoˇren´ y syst´em informaˇcn´ıch maj´ak˚ u. Moˇznosti, jak lze informaˇcn´ı maj´aky prostˇrednictv´ım mobiln´ıch zaˇr´ızen´ı detekovat a pˇr´ıpadnˇe z nich ˇc´ıst informace, jsou pops´any v kapitole 3.
1.2
C´ıl pr´ ace
C´ılem t´eto diplomov´e pr´ace je prozkoumat trh a zjistit, jak´e syst´emy podobn´eho typu existuj´ı a jak´e moˇznosti identifikace informaˇcn´ıch maj´ak˚ u vyuˇz´ıvaj´ı. D´ale budou prozkoum´any dalˇs´ı moˇznosti identifikace informaˇcn´ıch maj´ak˚ u. Na z´akladˇe zjiˇstˇen´ ych skuteˇcnost´ı bude vybr´ana mnoˇzina technologi´ı vhodn´ ych pro realizaci syst´emu informaˇcn´ıch maj´ak˚ u a bude vytvoˇrena mobiln´ı aplikace pro platformu Android, kter´a by mˇela uˇzivateli pohodlnˇe nab´ıdnout aktu´aln´ı obsah v z´avislosti na jeho poloze, ˇci snaze obsah z´ıskat.
1
2 Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ ak˚ u Obecnˇe se vˇsechny syst´emy informaˇcn´ıch maj´ak˚ u daj´ı rozdˇelit pro pouˇzit´ı ve vnitˇrn´ıch prostorech (tzv. Indoor syst´emy), na pouˇzit´ı v prostor´ach vnˇejˇs´ıch (Outdoor syst´emy) ˇci jejich kombinaci. Typ syst´emu omezuje pouˇzit´ı nˇekter´ ych technologi´ı pro identifikaci maj´ak˚ u, jelikoˇz napˇr´ıklad uvnitˇr budovy neb´ yv´a moˇzn´e zachytit GPS sign´al a porovn´avat tak polohu uˇzivatele a maj´aku.
2.1
V´ yznam informaˇ cn´ıch maj´ ak˚ u
V´ yznam informaˇcn´ıch maj´ak˚ u se m˚ uˇze liˇsit v z´avislosti na instituci, ve kter´e jsou pouˇzity, a na u ´ˇcelu, ke kter´emu jsou vyuˇz´ıv´any.
Pouˇ zit´ı ve vzdˇ el´ avac´ıch instituc´ıch Maj´aky se daj´ı pouˇz´ıt ve vzdˇel´avac´ıch instituc´ıch, jako je napˇr´ıklad are´al univerzity, ve kter´em je tˇeˇzk´e se pˇri prvn´ı n´avˇstˇevˇe orientovat, a mohou nov´emu ˇclenovi pomoci naj´ıt m´ıstnosti, kde prob´ıh´a jeho v´ yuka ˇci kancel´aˇre, do kter´ ych se m´a dostavit. Konkr´etn´ı pˇr´ıklad pouˇzit´ı ve vzdˇel´avac´ı instituci je uveden v kapitole 6.
Pouˇ zit´ı v podniku Dalˇs´ım pˇr´ıkladem m˚ uˇze b´ yt vˇetˇs´ı podnik, kde nov´ı zamˇestnanci neznaj´ı firemn´ı procesy a politiku a vyuˇzit´ım informaˇcn´ıch maj´ak˚ u se mohou rychleji zaˇradit do pracovn´ıho procesu. Informaˇcn´ı maj´aky mu mohou napˇr´ıklad sdˇelit, kter´e vˇsechny dokumenty mus´ı vyplnit, kter´e lidi mus´ı navˇst´ıvit pˇred t´ım, neˇz p˚ ujde za vedouc´ım s urˇcit´ ym poˇzadavkem apod. Informaˇcn´ı maj´aky nemus´ı slouˇzit pouze ke sdˇelov´an´ı informac´ı. Lze je pouˇz´ıt napˇr´ıklad i pro komunikaci s firemn´ım syst´emem. Pˇredchoz´ı pˇr´ıklad, lze tedy rozˇs´ıˇrit. Nov´ y zamˇestnanec pˇr´ımo z informaˇcn´ıho maj´aku z´ısk´a dokumenty, kter´e mus´ı vyplnit, a skrze 2
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
V´yznam informaˇcn´ıch maj´ak˚ u
pˇr´ısluˇsn´ y maj´ak je tak´e vyplnˇen´e odevzd´a. T´ım se v´ yraznˇe zkr´at´ı ˇcas cel´eho procesu, nemus´ı se tak´e zbyteˇcnˇe pl´ ytvat pap´ırem apod. Z pohledu zamˇestnavatele jsou informaˇcn´ı maj´aky prostˇredkem, jak umoˇznit zamˇestnanc˚ um pracovat efektivnˇeji a rychleji.
Pouˇ zit´ı ve veˇ rejn´ ych instituc´ıch Pouˇzit´ı informaˇcn´ıch maj´ak˚ u se tak´e nab´ız´ı ve veˇrejn´ ych instituc´ıch jako jsou muzea, v´ ystaviˇstˇe, zoologick´e zahrady, botanick´e zahrady apod. Skrze informaˇcn´ı maj´aky je moˇzn´e n´avˇstˇevn´ıky informovat o aktu´alnˇe prob´ıhaj´ıc´ıch soutˇeˇz´ıch a pˇr´ıpadnˇe skrze maj´aky umoˇznit n´avˇstˇevn´ık˚ um soutˇeˇzit. Soutˇeˇz m˚ uˇze prob´ıhat jako prost´e odpov´ıd´an´ı na ot´azky, ˇci nutnost navˇst´ıven´ı vˇsech maj´ak˚ u v dan´e instituci. D´ale je moˇzn´e n´avˇstˇevn´ık˚ um nab´ızet multimedi´aln´ı obsah souvisej´ıc´ı s expon´atem / st´ankem, pˇred kter´ ym se aktu´alnˇe nach´azej´ı. Obecnˇe lze ˇr´ıci, ˇze zaveden´ım informaˇcn´ıch maj´ak˚ u v jak´ekoliv instituci m´a provozovatel moˇznost zv´ yˇsit svou atraktivitu, zlepˇsit informovanost n´avˇstˇevn´ık˚ u, zv´ yˇsit interakci s n´avˇstˇevn´ıky a pˇr´ıpadnˇe podle statistik upravit vystavovan´ y obsah. V neposledn´ı ˇradˇe mohou informaˇcn´ı maj´aky sn´ıˇzit n´aklady na popis expon´at˚ u (popis a doprovodn´e multim´edia si n´avˇstˇevn´ık zobraz´ı na sv´em zaˇr´ızen´ı a provozovatel tak nemus´ı investovat napˇr. do zobrazovac´ıch zaˇr´ızen´ı, pˇr´ıpadnˇe pˇri jejich absenci neochud´ı n´avˇstˇevn´ıka o multimedi´aln´ı z´aˇzitek).
Komerˇ cn´ı pouˇ zit´ı V ˇcistˇe komerˇcn´ım prostˇred´ı, jako jsou n´akupn´ı centra, lze informaˇcn´ıch maj´ak˚ u vyuˇz´ıt k nab´ızen´ı produkt˚ u na z´akladˇe toho, pˇred kter´ ym obchodem se z´akazn´ık pr´avˇe nach´az´ı. Bˇeˇzn´emu uˇzivateli se tento zp˚ usob nab´ızen´ı zboˇz´ı m˚ uˇze zd´at jako nucen´a a nechtˇen´a reklama a syst´em nemus´ı cht´ıt vyuˇz´ıvat. Ovˇsem pokud si z´akazn´ık zboˇz´ı zakoup´ı na z´akladˇe nab´ıdky informaˇcn´ıho maj´aku, m˚ uˇze mu b´ yt nab´ıdnuta sleva a t´ım provozovatel donut´ı“ z´akazn´ıka v ” jeho n´akupn´ım centru syst´em informaˇcn´ıch maj´ak˚ u vyuˇz´ıvat. T´ım, ˇze bude z´akazn´ık hledat maj´aky (potaˇzmo slevy) po n´akupn´ım centru, se zvˇetˇsuje ˇsance, ˇze si s sebou odnese i zboˇz´ı, pro kter´e v˚ ubec neˇsel. Lze tedy bez obav ˇr´ıci, ˇze informaˇcn´ı maj´aky jsou vhodn´e i pro ˇcistˇe komerˇcn´ı u ´ˇcely. 3
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
2.2
Google Maps
Google Maps
Google Maps samy o sobˇe nejsou pˇr´ımo syst´emem informaˇcn´ıch maj´ak˚ u. Jedn´a se o pouh´e zjiˇst’ov´an´ı polohy na z´akladˇe sign´alu GPS, popˇr. je poloha urˇcena podle z´akladov´ ych stanic oper´atora (BTS), kter´e mobiln´ı zaˇr´ızen´ı detekuje, dle BTS, k n´ıˇz je zaˇr´ızen´ı pˇripojeno, ˇci na z´akladˇe okoln´ıch WiFi zaˇr´ızen´ı, jejichˇz v´ıce ˇci m´enˇe pˇresnou polohu m´a Google zaznamenanou. Jedn´a se o Outdoorov´ y polohovac´ı syst´em1 . Pˇridanou hodnotou mohou b´ yt tzv. markery, coˇz jsou virtu´aln´ı body, kter´e se do mapy daj´ı pˇridat. Jednotliv´e markery lze pojmenovat a jako jejich obsah do nich lze uloˇzit libovoln´a textov´a informace. Vloˇzen´ y text m˚ uˇze b´ yt nav´ıc uloˇzen jako HTML k´od, tud´ıˇz jde vytvoˇrit t´emˇeˇr libovoln´ y obsah maj´aku (text, obr´azky, hypertextov´ ych odkazy apod.). Lze vloˇzit i prvek iframe 2 , ˇc´ımˇz se otev´ır´a cesta pro vloˇzen´ı extern´ıho obsahu, jako jsou napˇr´ıklad vloˇzen´a tzv. embedded videa. Google nicm´enˇe mysl´ı na bezpeˇcnost, tud´ıˇz nedovol´ı vloˇzit napˇr. JavaScript k´od, nebo iframe, kter´ y obsahuje pro Google neprovˇeˇrenou str´anku (pˇri testech se povedlo vloˇzit pouze embedded YouTube video). Takto vybaven´e body uˇz lze povaˇzovat za informaˇcn´ı maj´aky. Jiˇz zm´ınˇen´e markery nejsou v´ ysadou pouze map od spoleˇcnosti Google. Podobnou funkcionalitu nab´ız´ı vˇetˇsina poskytovatel˚ u map. Z ˇcesk´ ych poskytovatel˚ u je to napˇr´ıklad Seznam.cz a jeho mapy, u kter´ ych ovˇsem nen´ı moˇzn´e uloˇzit v´ıce bod˚ u s jakoukoliv pˇridanou informac´ı (at’ uˇz se jedn´a o pojmenov´an´ı nebo obsah). Pojmenovan´ y a obsahovˇe naplnˇen´ y bod lze uloˇzit a sd´ılet maxim´alnˇe jeden, coˇz je pro syst´em informaˇcn´ıch maj´ak˚ u nedostaˇcuj´ıc´ı. Google Maps je vcelku dobˇre pouˇziteln´ y syst´em informaˇcn´ıch maj´ak˚ u pro uzavˇrenou skupinu, jako jsou napˇr´ıklad zamˇestnanci jedn´e organizace. Nehod´ı se ovˇsem pro veˇrejn´e instituce. Viz n´ıˇze - nev´ yhody.
1 2
Syst´em zab´ yvaj´ıc´ı se urˇcen´ım polohy ve venkovn´ıch prostor´ach, mimo budovy. HTML prvek, kter´ y v sobˇe um´ı zobrazit jin´ y HTML dokument
4
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
2.2.1
Google Indoor Maps
V´ yhody a nev´ yhody
V´ yhody Nespornou v´ yhodou Google Maps je jejich rozˇs´ıˇrenost. Mapy od spoleˇcnosti Google jsou hojnˇe vyuˇz´ıv´any a kaˇzd´e zaˇr´ızen´ı postaven´e na platformˇe Android3 m´a klientskou aplikaci pro Google Maps, kde si m˚ uˇze maj´aky zobrazovat. Dalˇs´ı v´ yhodou je fakt, ˇze sluˇzba je bezplatn´a a maj´aky se daj´ı pohodlnˇe nastavit skrze webov´e rozhran´ı.
Nev´ yhody Jistou nev´ yhodou tohoto ˇreˇsen´ı je fakt, ˇze vytvoˇren´e markery jsou priv´atn´ı, tzn. vid´ı je pouze ten uˇzivatel, kter´ y je vytvoˇril. Je zde urˇcit´a moˇznost takto vytvoˇrenou mapu vˇcetnˇe maj´ak˚ u sd´ılet a to bud’ pomoc´ı emailov´ ych pozv´anek nebo URI. Markery je samozˇrejmˇe moˇzn´e vytvoˇrit jako veˇrejn´e, ty se ovˇsem automaticky nezobraz´ı na mapˇe. Zobraz´ı se pouze jako v´ ysledek hled´an´ı konkr´etn´ıho dotazu. Z tohoto d˚ uvodu jsou takto vytvoˇren´e veˇrejn´e mapy nepouˇziteln´e.
2.3
Google Indoor Maps
Google Indoor Maps je, jak uˇz n´azev napov´ıd´a, kombinace Google Maps a navigace uvnitˇr budov. Jedn´a se o rozˇs´ıˇren´ı Google Maps, kter´e um´ı zobrazit vnitˇrn´ı pl´an budovy a uˇzivatelovu pozici a to vˇcetnˇe jednotliv´ ych podlaˇz´ı. Indoor Maps se pouˇz´ıvaj´ı nejˇcastˇeji v obchodn´ıch centrech, letiˇst´ıch, muze´ıch, stadionech a vlakov´ ych n´adraˇz´ı. Projekt s´am o sobˇe oproti Google map´am nepˇrin´aˇs´ı ˇza´dn´e vylepˇsen´ı, co se urˇcov´an´ı polohy t´ yˇce. Stejnˇe jako Google mapy vyuˇz´ıv´a GPS (uvnitˇr budovy 3
nemus´ı platit pro tzv. rootnut´ a zaˇr´ızen´ı a upraven´e syst´emy - takov´ ychto zaˇr´ızen´ı nen´ı ovˇsem v´ yznamn´e procento a m´ıvaj´ı je zkuˇsen´ı uˇzivatel´e, kteˇr´ı si klientskou aplikaci um´ı v pˇr´ıpadˇe potˇreby doinstalovat
5
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
Google Indoor Maps
velmi zˇr´ıdka), zachyt´av´a WiFi a Bluetooth sign´aly a urˇcuje polohu pomoc´ı triangulace. Polohy vys´ılaj´ıc´ıch WiFi a Bluetooth zaˇr´ızen´ı jsou zachyceny a n´aslednˇe upravov´any podle informac´ı z mobiln´ıch zaˇr´ızen´ı, kter´a se dostala do dosahu vys´ıl´an´ı tˇechto zaˇr´ızen´ı a maj´ı povoleno odes´ılat svoji polohu a dalˇs´ı informace zpˇet spoleˇcnosti Google. Z tohoto d˚ uvodu nen´ı zjiˇst’ov´an´ı polohy uˇzivatele tak pˇresn´e, jako tomu je u GPS, jelikoˇz ani poloha vys´ılaj´ıc´ıch zaˇr´ızen´ı nen´ı u ´plnˇe pˇresnˇe urˇcena. K tomu, aby byla navigace uvnitˇr budovy dostupn´a, je ovˇsem nutn´e spoleˇcnosti Google poskytnout pl´any jednotliv´ ych pater budovy. Na zaˇca´tku ˇ e republice roku 2013 je takto zmapov´ano 10 000+ budov z 13 zem´ı. V Cesk´ nen´ı takto zmapov´ana ani jedna budova.[ind()] Uk´azka z nativn´ı aplikace je vidˇet na obr´azku 2.1. Na prav´e stranˇe obrazovky je vidˇet aktivn´ı pˇrep´ınaˇc pro jednotliv´a patra budovy.
(a)
(b)
(c)
Obr´azek 2.1: Zobrazen´ı pl´an˚ u jednotliv´ ych pater n´akupn´ıho stˇrediska Arcaden, Hamburg, Nˇemecko
2.3.1
V´ yhody a nev´ yhody
V´ yhody V´ yhodou je moˇznost vyuˇzit´ı dalˇs´ı ze sluˇzeb spoleˇcnosti Google - Latitude, kter´a slouˇz´ı ke sd´ılen´ı polohy uˇzivatele. D´ale je to tak´e kvalita pl´an˚ u, jelikoˇz 6
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
RedPin
pro vloˇzen´ı pl´anu pater budovy je nutn´e dodrˇzet minim´aln´ı poˇzadavky.4
Nev´ yhody Nev´ yhodou je fakt, ˇze nativn´ı klient pro Indoor Maps je pouze na platformˇe Android. Ostatn´ı platformy (iOS, Windows Phone) mus´ı pouˇz´ıt webov´e rozhran´ı. Dalˇs´ım negativem je nemoˇznost vyuˇz´ıv´an´ı marker˚ u, jako tomu bylo i Google Maps, pokud se jedn´a o v´ıcepatrov´e budovy. Marker˚ um se totiˇz ned´a nastavit, pro kter´e podlaˇz´ı se maj´ı zobrazovat. V pˇr´ıpadˇe Indoor Maps jsou markery jednotliv´e m´ıstnosti v budovˇe (napˇr. obchody v n´akupn´ım centru). Markery se tedy nedaj´ı dynamicky pˇrid´avat a odeb´ırat napˇr´ıklad na z´akladˇe aktu´alnˇe prob´ıhaj´ıc´ıch akc´ı apod.
2.4
RedPin
RedPin5 je ˇcistˇe Indoor polohovac´ı syst´em, kter´ y se snaˇz´ı urˇcit uˇzivatelovu polohu s pˇresnost´ı na m´ıstnost. Pro urˇcen´ı polohy vyuˇz´ıv´a zachycen´e WiFi sign´aly (BSSID, vˇcetnˇe RSSI), Bluetooth a GSM sign´aly od okoln´ıch zaˇr´ızen´ı. Zvl´aˇstnost´ı syst´emu je workflow urˇcen´ı mapy vnitˇrn´ıho prostoru. Syst´em m´a v sobˇe na zaˇca´tku pouze pl´any budovy rozˇclenˇen´e na jednotliv´a patra a uˇzivatelsk´a aplikace dostane pouze tento pl´an. Cel´ y syst´em tak neproch´az´ı na zaˇca´tku existence f´az´ı tr´enov´an´ı“, ale spol´eh´a na komunitu vyuˇz´ıvaj´ıc´ı ” syst´em, ˇze tr´enov´an´ı provedou v pr˚ ubˇehu fungov´an´ı. Tento princip vych´az´ı z myˇslen´ı autor˚ u, kteˇr´ı poˇc´ıtaj´ı s t´ım, ˇze se okol´ı neust´ale mˇen´ı - jednotliv´e WiFi pˇr´ıstupov´e body se nahrazuj´ı za nov´e, nˇekdy nevys´ılaj´ı atd., a tak se cel´ y syst´em m˚ uˇze neust´ale adaptovat. Workflow tr´enov´an´ı a fungov´an´ı syst´emu je n´asleduj´ıc´ı. Po spuˇstˇen´ı odes´ıl´a aplikace na server nalezen´e vys´ılaj´ıc´ı WiFi zaˇr´ızen´ı (BSSID, RSSI) a server se na z´akladˇe jiˇz uloˇzen´ ych otisk˚ u“ poloh snaˇz´ı urˇcit uˇzivatelovu polohu. Pokud ” server nen´ı schopn´ y polohu urˇcit, je uˇzivatel vyzv´an, aby zvolil patro a iden4
dostupn´e na http:support.google.comgmmbinanswer.py?hl=en&answer=1711534 &topic=1685871&ctx=topic 5 domovsk´ a str´ anka http://www.redpin.org/
7
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
RedPin
Obr´azek 2.2: Uk´azka natr´enovan´eho syst´emu. Zelen´e body urˇcuj´ı polohu uloˇzen´ ych otisk˚ u“.[Bolliger()] ” tifik´ator m´ıstnosti, ve kter´e zrovna je, pˇr´ıpadnˇe ji urˇcil pˇr´ımo na mapˇe. T´ım doch´az´ı k tr´enov´an´ı syst´emu. D´ıky tomuto kontinu´aln´ımu tr´enov´an´ı, je syst´em RedPin schopn´ y se adaptovat na zmˇeny v okoln´ım elektromagnetick´em prostˇred´ı. Natr´enovan´ y syst´em je vidˇet na obr´azku 2.2. Syst´em RedPin je open-source a na sv´ ych str´ank´ach nab´ız´ı ke staˇzen´ı jak serverovou ˇc´ast, kter´a je napsan´a v programovac´ım jazyce Java, tak i mobiln´ı klienty. Jedn´a se o multiplatformn´ı syst´em, protoˇze mobiln´ı klienti jsou dostupn´ı pro platformu Android, iOS, dokonce i pro Symbian. Klient pro Windows Phone v souˇcasn´e dobˇe nen´ı dostupn´ y.
2.4.1
Algoritmus urˇ cen´ı polohy
Jak bylo zm´ınˇeno v´ yˇse, poloha je urˇcov´ana podle unik´atn´ıch identifik´ator˚ u vys´ılaj´ıc´ıho zaˇr´ızen´ı a s´ıly sign´alu. Uvedeno na pˇr´ıkladu, algoritmus funguje n´asledovnˇe. Mˇejme dvˇe soused´ıc´ı m´ıstnosti A a B. V syst´emu je uloˇzen otisk“ ” obou m´ıstnost´ı. V m´ıstnosti A je um´ıstˇen WiFi pˇr´ıstupov´ y bod, kter´ y vys´ıl´a. V pˇr´ıpadˇe, ˇze se uˇzivatel nach´az´ı v m´ıstnosti B, zachyt´av´a jeho zaˇr´ızen´ı sign´al stejnˇe tak, jako by byl v m´ıstnosti A. V pˇr´ıpadˇe t´eto shody, server provede urˇcen´ı polohy znovu s pˇrihl´ednut´ım na rozd´ıl s´ıly zmˇeˇren´eho sign´alu se silou ˇ ım menˇs´ı bude rozd´ıl, t´ım vˇetˇs´ı bonus“ sign´alu uloˇzenou v otisku m´ıstnost´ı. C´ ” bude pˇriˇcten k jednotliv´e poloze. Nejlepˇs´ı poloha bude vr´acena a zobrazena uˇzivateli.
8
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
2.4.2
TripAdvisor
V´ yhody a nev´ yhody
V´ yhody V´ yhodou cel´eho projektu je jeho otevˇrenost. Kaˇzd´ y z´ajemce si m˚ uˇze syst´em st´ahnout, upravit pro sv´e potˇreby a nasadit do provozu. Dalˇs´ım pozitivem je deklarovan´a pˇresnost, kde syst´em by mˇel b´ yt schopn´ y poskytnout urˇcen´ı polohy s pˇresnost´ı na m´ıstnost.
Nev´ yhody Z pohledu nasazen´ı ve veˇrejn´e instituci je urˇcitou nev´ yhodou workflow tr´enov´an´ı syst´emu. Z poˇca´tku pr´azdn´ y syst´em nen´ı n´avˇstˇevn´ıkovi veˇrejn´e instituce k uˇzitku a ˇza´dost o identifikaci m´ıstnosti v pˇr´ıpadˇe nenalezen´ı polohy n´avˇstˇevn´ıka je neˇza´douc´ı. Aˇckoliv je syst´em open-source (coˇz d´av´a moˇznost chov´an´ı upravit dle poˇzadavk˚ u), odstranit v´ yˇse zm´ınˇen´e neˇz´adouc´ı vlastnosti, by znamenalo odstranit podstatu projektu. Dalˇs´ım negativem je fakt, ˇze klient pro platformu iOS nem˚ uˇze b´ yt distribuov´an prostˇrednictv´ım port´alu AppStore. Klient totiˇz vyuˇz´ıv´a priv´atn´ı API pro zjiˇstˇen´ı BSSID WiFi zaˇr´ızen´ı, coˇz se neshoduje s podm´ınkami pro uveˇrejnˇen´ı aplikace na port´alu AppStore.
2.5
TripAdvisor
TripAdvisor6 je multiplatformn´ı Outdoor syst´em, kter´ y lze vyuˇz´ıvat jak z mobiln´ıch aplikac´ı, tak z webov´eho prohl´ıˇzeˇce. Tento syst´em slouˇz´ı, jak uˇz n´azev napov´ıd´a, jako r´adce pˇri pl´anov´an´ı v´ ylet˚ u. Mobiln´ı aplikace slouˇz´ı jako pr˚ uvodce po v´ yznamn´ ych svˇetov´ ych mˇestech, jako je napˇr´ıklad Amsterdam, ˇ ım, New York atd. Praha, R´ Pro kaˇzd´e mˇesto je samostatn´a aplikace a samostatn´a datab´aze n´akupn´ıch center, restaurac´ı, bankomat˚ u, zast´avek mˇestsk´e dopravy, turistick´ ych atrakc´ı 6
domovsk´ a str´ anka http://www.tripadvisor.com/
9
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
TripAdvisor
Obr´azek 2.3: Uk´azka aplikace TripAdvisor pro hlavn´ı mˇesto Praha - seznam turistick´ ych atrakc´ı. apod. Aplikace d´ale umoˇzn ˇuje st´ahnout datab´azi obsahu do zaˇr´ızen´ı, tud´ıˇz je uˇzivatel i v zahraniˇc´ı bez pˇripojen´ı k Internetu schopn´ y aplikaci vyuˇz´ıvat. Aplikace vyuˇz´ıv´a pouze GPS a GSM sign´al k urˇcen´ı polohy uˇzivatele a na z´akladˇe jeho polohy doporuˇcuje nejbliˇzˇs´ı turistick´e vyˇzit´ı v dan´em mˇestˇe.
2.5.1
V´ yhody a nev´ yhody
V´ yhody Velkou v´ yhodou jsou velmi podrobn´a data a jejich moˇznost staˇzen´ı do vnitˇrn´ıho u ´loˇziˇstˇe zaˇr´ızen´ı, coˇz d´av´a moˇznost syst´em vyuˇz´ıvat i v zahraniˇc´ı, kde nen´ı pˇripojen´ı k Internetu pro cizince levnou z´aleˇzitost´ı.
Nev´ yhody Tento syst´em nelze nijak vyuˇz´ıt pro vlastn´ı potˇreby z pohledu provozovatele syst´emu informaˇcn´ıch maj´ak˚ u - nelze pˇrid´avat sv´e maj´aky s vlastn´ım obsahem.
10
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
2.6
ByteLight
ByteLight
Syst´em ByteLight7 je pouze Indoor lokalizaˇcn´ı syst´em, kter´ y je jedineˇcn´ y v urˇcov´an´ı polohy uvnitˇr budov - vyuˇz´ıv´a svˇetlo. K tomu je jeˇstˇe zapotˇreb´ı speci´aln´ıch LED ˇza´rovek, kter´e jsou schopn´e blikat urˇcitou frekvenc´ı. Frekvence se pohybuje ˇr´adovˇe ve stovk´ach Hz, takˇze je pro lidsk´e oko nezachytiteln´a. Kamera mobiln´ıho zaˇr´ızen´ı je ovˇsem schopna toto blik´an´ı zachytit a zjistit jeho frekvenci. Frekvence blik´an´ı je pro ByteLight to sam´e, jako je MAC adresa pro s´ıt’ov´e rozhran´ı - jedineˇcnˇe urˇcuje ˇz´arovku. Na z´akladˇe znalosti um´ıstˇen´ı ˇz´arovky, lze pomˇernˇe pˇresnˇe zjistit i polohu n´avˇstˇevn´ıka. V souˇcasn´e dobˇe m´a spoleˇcnost ByteLight patentovan´e sv´e LED ˇza´rovky s klasick´ ym z´avitem, tud´ıˇz pro pouˇz´ıv´an´ı nen´ı tˇreba budovat novou infrastrukturu, ale staˇc´ı pouze vymˇenit ˇza´rovky.
2.6.1
V´ yhody a nev´ yhody
V´ yhody V´ yhodou tohoto syst´emu je jeho relativnˇe vysok´a pˇresnost pˇri urˇcen´ı polohy uvnitˇr budovy. Dalˇs´ı v´ yhodou je API a vzorov´e aplikace, kter´e ByteLight nab´ız´ı, takˇze lze tuto technologii vyuˇz´ıt t´emˇeˇr jak´ ymkoliv zam´ yˇslen´ ym zp˚ usobem.
Nev´ yhody Znaˇcnou nev´ yhodou je cena LED ˇz´arovek, kde jedna ˇza´rovka se pohybuje okolo 2500,- Kˇc za kus. St´avaj´ıc´ı ˇz´arovky se nedaj´ı vylepˇsit o ByteLight technologii, ale mus´ı se poˇr´ıdit nov´e. Pro spoleˇcnost, kter´a jiˇz investovala do u ´sporn´eho LED osv´ıcen´ı, m˚ uˇze b´ yt zaveden´ı ByteLight syst´emu velmi ˇ n´akladn´a z´aleˇzitost. Z´arovky jsou nav´ıc v souˇcasn´e dobˇe vyr´abˇeny pouze pro napˇet´ı 120 V, tud´ıˇz pro st´aty, kde je napˇet´ı v s´ıti vˇetˇs´ı je syst´em nepouˇziteln´ y. [byt()] 7
domovsk´ a str´ anka http://www.bytelight.com/
11
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
2.7
Syst´emy pro konkr´etn´ı instituce
Syst´ emy pro konkr´ etn´ı instituce
Pˇredchoz´ı prob´ıran´e syst´emy byly do jist´e m´ıry univerz´aln´ı. Odliˇsn´e byly nejˇcastˇeji zp˚ usobem, jak´ ym zjiˇst’ovaly polohu uˇzivatele a co vˇse na z´akladˇe jeho polohy bylo moˇzn´e uˇzivateli poskytnout. Mezi dalˇs´ı pˇr´ıklady patˇr´ı syst´emy, kter´e jsou vytvoˇreny pˇr´ımo pro konkr´etn´ı instituci. Nejˇcastˇeji se jedn´a o muzea, zoologick´e a botanick´e zahrady, v´ ystaviˇstˇe nebo mˇestskou hromadnou dopravu konkr´etn´ıho mˇesta. Jejich spoleˇcn´ ym jmenovatelem je zjiˇst’ov´an´ı polohy uˇzivatele, kter´e se dˇeje vesmˇes vˇzdy vyuˇzit´ım sign´alu GPS nebo je uˇzivatelova poloha urˇcena pˇribliˇznˇe v ˇra´dech des´ıtek metr˚ u pomoc´ı GSM sign´alu. Velmi zˇr´ıdka je vyuˇzita i jin´a technologie, jako je napˇr´ıklad NFC (v´ıce o NFC v ˇca´sti 3.6) ˇci QR k´ody. Aplikace uˇzivatel˚ um nab´ız´ı v´ıce ˇci m´enˇe interaktivn´ı obsah. Zpravidla obsahuj´ı mapu v´ yznamn´ ych bod˚ u dan´e instituce nebo pouze statickou mapu s vyznaˇcenou cestou, kudy by se mˇel n´avˇstˇevn´ık vydat. Zˇr´ıdka tyto aplikace umoˇzn ˇuj´ı zaslat instituci zpˇetnou vazbu v podobˇe emailov´e zpr´avy nebo pˇridat hodnocen´ı cel´e instituce, popˇr. jednotliv´ ych expon´at˚ u. Dalˇs´ı pˇridanou hodnotou pro n´avˇstˇevn´ıka jsou doprovodn´a multim´edia (fotografie, videa atd.), kter´e m´a aplikace uloˇzen´a v sobˇe.
2.7.1
V´ yhody a nev´ yhody
V´ yhodou takov´ ychto syst´em˚ u je skuteˇcnost, ˇze jsou dˇelan´e na m´ıru konkr´etn´ı instituci ˇci situaci a je tedy pˇredpoklad, ˇze pro ni budou fungovat spolehlivˇe. Avˇsak z toho plyne v podstatˇe jejich nev´ yhoda a to, ˇze nejsou obecn´e a nijak d´ale pouˇziteln´e.
2.7.2
iTAG.cz
Takov´ ym syst´emem, kter´ y je tvoˇren na m´ıru je napˇr´ıklad iTAG.cz, coˇz je syst´em informaˇcn´ıch maj´ak˚ u pro Plzeˇ nsk´e mˇestsk´e dopravn´ı podniky. Na kaˇzd´e zast´avce je pod klasick´ ym pap´ırov´ ym j´ızdn´ım ˇra´dem um´ıstˇen v mal´e pr˚ uhledn´e krabiˇcce QR k´od spoleˇcnˇe s NFC tagem. Po pˇreˇcten´ı at’
12
Existuj´ıc´ı syst´emy informaˇcn´ıch maj´ak˚ u
Syst´emy pro konkr´etn´ı instituce
uˇz QR k´odu nebo NFC tagu, je mobiln´ı zaˇr´ızen´ı pˇresmˇerov´ano na webovou str´anku s aktu´aln´ım j´ızdn´ım ˇra´dem pro konkr´etn´ı zast´avku a smˇer. Pro tento syst´em nen´ı tˇreba m´ıt v zaˇr´ızen´ı nainstalovan´eho klienta, staˇc´ı m´ıt nainstalovanou libovolnou QR ˇcteˇcku. To se m˚ uˇze jevit jako v´ yhoda, avˇsak v pˇr´ıpadˇe, ˇze zaˇr´ızen´ı nem´a pˇripojen´ı k Internetu, neexistuje moˇznost jak obsah maj´aku“ z´ıskat. ”
(a) Zoologick´ a zahrada Brno
(b) Muzeum v Brooklynu
(c) British Museum
Obr´azek 2.4: Uk´azka klient˚ u syst´emu informaˇcn´ıch maj´ak˚ u pro konkr´etn´ı instituce realizovan´e na platformˇe Android
13
3 Moˇznosti identifikace informaˇcn´ıch maj´ ak˚ u V t´eto kapitole budou rozebr´any vybran´e technologie, kter´e by se daly vyuˇz´ıt pro identifikaci informaˇcn´ıch maj´ak˚ u jak uvnitˇr tak mimo budovy a kter´e by bylo vhodn´e pouˇz´ıt pˇri realizaci mobiln´ıho klienta informaˇcn´ıch maj´ak˚ u na platformˇe Android.
3.1
Pojem Indoor positioning
V pˇredchoz´ıch kapitol´ach byl probl´em urˇcov´an´ı polohy uvnitˇr budovy - tzv. Indoor positioning - nˇekolikr´at zm´ınˇen. V souˇcasn´e dobˇe je urˇcen´ı polohy mobiln´ıch zaˇr´ızen´ı aˇz na jednotky metr˚ u mimo budovy (pomoc´ı GPS) bˇeˇznou a samozˇrejmou z´aleˇzitost´ı, nicm´enˇe urˇcen´ı polohy uvnitˇr budov je nov´ y a rozv´ıjej´ıc´ı se obor, kter´ y pˇredstavuje velkou v´ yzvu. K urˇcen´ı polohy uvnitˇr budov se d´a vyuˇz´ıt jiˇz hotov´a infrastruktura (funguj´ıc´ı WiFi pˇr´ıstupov´e body apod.) nebo je nutn´e pro konkr´etn´ı technologii vytvoˇrit infrastrukturu novou (rozm´ıstit NFC tagy - viz 3.6, QR k´ody - viz 3.3, atd.)
3.2
GPS
GPS - Global Positioning System je p˚ uvodnˇe vojensk´ y druˇzicov´ y polohov´ y syst´em, kter´ y provozuje Ministerstvo obrany Spojen´ ych st´at˚ u americk´ ych. Pro urˇcen´ı polohy a ˇcasu se vyuˇz´ıv´a tzv. k´odov´ y pˇr´ıstup. Druˇzice vys´ılaj´ı na Zem sign´aly, kter´e obsahuj´ı polohu druˇzice v prostoru a ˇcasovou znaˇcku, kdy byl sign´al odesl´an. Zaˇr´ızen´ı, kter´e sign´aly pˇrijme, si vypoˇcte, jak´a je jeho poloha. K urˇcen´ı polohy lze teoreticky vyuˇz´ıt sign´al pouze ze 2 druˇzic, nicm´enˇe vypoˇcten´a poloha je velmi nepˇresn´a. Ze sign´al˚ u ze 3 druˇzic lze urˇcit polohu mnohem pˇresnˇeji, nicm´enˇe se jedn´a o 2D urˇcen´ı polohy nerespektuj´ıc´ı nadmoˇrskou v´ yˇsku. Ze 4 a v´ıce druˇzic lze pomoc´ı metody triangulace z´ıskat
14
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
QR k´od
stabiln´ı a pˇresnou polohu na jak´emkoliv m´ıstˇe na planetˇe.[Cooksey()] Nev´ yhodou GPS je skuteˇcnost, ˇze jeho sign´al nen´ı dostateˇcn´ y, aby pronikl skrze stˇeny budov. Pr˚ unik sign´alu skrze stˇeny ˇreˇs´ı projekt Locata, v ˇca´sti 3.7. GPS nen´ı jedin´ ym glob´aln´ım druˇzicov´ ym syst´emem pro urˇcov´an´ı polohy. ˇ Rusko m´a sv˚ uj GLONASS, C´ına Compass a Evropa pˇripravuje sv˚ uj v projektu Galileo. Vˇsechny zm´ınˇen´e syst´emy pouˇz´ıvaj´ı k´odov´ y pˇr´ıstup pro urˇcen´ı polohy. [Cooksey()] Jelikoˇz je GPS pˇrij´ımaˇc t´emˇeˇr v kaˇzd´em zaˇr´ızen´ı postaven´em na platformˇe Android, je vhodn´e tuto technologii zahrnout do v´ yˇctu technologi´ı pro budouc´ıho klienta syst´emu informaˇcn´ıch maj´ak˚ u.
3.3
QR k´ od
QR k´od byl navrˇzen v roce 1994 pro automobilku Toyota jako jak´ ysi rodokmen automobilu, jenˇz lze z´ıskat velmi rychle. Z toho plyne i v´ yznam p´ısmen QR - Quick Response, nebo-li rychl´a odpovˇed’. Jedn´a se dvourozmˇern´ y syst´em ˇc´arov´ ych k´od˚ u, kter´ y narozd´ıl od klasick´ ych jednorozmˇern´ ych ˇc´arov´ ych k´od˚ u, dok´aˇze udrˇzovat pˇribliˇznˇe stokr´at v´ıce dat. Specifikace QR k´od˚ u obsahuje dnes jiˇz 40 verz´ı, pˇriˇcemˇz s kaˇzdou verz´ı roste mnoˇzstv´ı dat, kter´e lze do QR k´od uloˇzit. Do nejvˇetˇs´ıho z nich - verze 40 - je moˇzn´e uloˇzit aˇz 4296 alfanumerick´ ych znak˚ u nebo 2953 znak˚ u z osmibitov´e znakov´e sady ISO 8859-1 (nˇekdy naz´ yvan´e Latin 1).[qr-(2000)]
3.3.1
Jak pˇ reˇ c´ıst QR k´ od
Na obr´azku 3.1 jsou vysvˇetleny jednotliv´e ˇca´st QR k´odu a jejich v´ yznam pˇri jeho ˇcten´ı. [qr-(2000)] 1. je tzv. z´ona ticha. Je to m´ısto, kde by se nemˇely vyskytovat ˇz´adn´e znaky. Zpravidla b´ yv´a bud’ 4x, 2x nebo 1x ˇsirok´a jako je nejmenˇs´ı prvek na QR k´odu - tzv. modul (viz n´ıˇze) 2. jsou polohovac´ı vzory, podle kter´ ych ˇcteˇcka dok´aˇze urˇcit hranice k´odu. 15
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
QR k´od
Obr´azek 3.1: Zp˚ usob rozloˇzen´ı a v´ yznam informac´ı uvnitˇr QR k´odu. [qr-(2000)] Detekovat se daj´ı jak horizont´alnˇe tak vertik´alnˇe podle n´asleduj´ıc´ıho ˇ = ˇcern´a, B = b´ıl´a] ˇ ˇ Cˇ C-Bˇ ˇ [C vzoru: C-BCC 3. jsou b´ıl´e oddˇelovaˇce pro polohovac´ı vzory. 4. je velmi d˚ uleˇzit´a ˇca´st. Skl´ad´a se z nejmenˇs´ıch ˇc´ast´ı QR k´odu - modul˚ u, kter´e se pravidelnˇe stˇr´ıdaj´ı. Jejich hlavn´ım u ´kolem je urˇcit mˇr´ıˇzku ostatn´ıch modul˚ u v cel´em QR k´odu. 5. jsou vyrovn´avac´ı vzory. Pom´ahaj´ı narovnat“ QR k´ody, kter´e jsou na” ˇ ım vˇetˇs´ı QR k´od bude, t´ım kreslen´e / nalepen´e na zakˇriven´e ploˇse. C´ v´ıce tˇechto vyrovn´avac´ıch vzor˚ u bude m´ıt. 6. znaˇc´ı informace o form´atu dat. Skl´ad´a se z 15 bit˚ u (modul˚ u), pˇriˇcemˇz tˇechto 15 bit˚ u je v k´odu um´ıstˇeno dvakr´at (jednou v celku vlevo nahoˇre, podruh´e rozdˇelen´e nap˚ ul u zb´ yvaj´ıc´ıch polohovac´ıch vzor˚ u). Tato informace je z´amˇernˇe redundantn´ı, protoˇze dek´odov´an´ı cel´eho k´odu z´avis´ı na korektn´ım pˇreˇcten´ı t´eto informace. Z 15 bit˚ u je pouze 5 datov´ ych, zbyl´ ych 10 je pro korekci chyb.
16
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
QR k´od
7. obsahuje informace o verzi, jeˇz urˇcuje verzi QR obrazce, tzn. mnoˇzstv´ı informac´ı, kter´e jsou v obrazci uloˇzeny. Tento blok je 18 bit˚ u (3x6 bit˚ u) velk´ y a stejnˇe jako pˇredchoz´ı informace o form´atu dat je v obrazci uloˇzen redundantnˇe. I tato informace je kritick´a pro spr´avn´e dek´odov´an´ı QR k´odu. Informace o verzi se vyskytuj´ı v QR k´odech verze 7 a vyˇsˇs´ı. 8. jsou datov´a a opravn´a k´odov´a slova, kter´a jsou 8 bit˚ u dlouh´a. Opravn´a k´odov´a slova pouˇz´ıvaj´ı opravn´ y algoritmus se 4 u ´rovnˇemi oprav. Nejniˇzˇs´ı u ´roveˇ n zaruˇcuje 7% obnoven´ı k´odov´ ych slov a ta nejvyˇsˇs´ı zaruˇcuje ˇ 30% obnoven´ı. C´ım vyˇsˇs´ı u ´roveˇ n algoritmu je pouˇzita, t´ım je samozˇrejmˇe menˇs´ı prostor pro data. D´ıky tˇemto opravn´ ym blok˚ um lze vytv´aˇret i umˇeleck´e“ QR obrazce, kdy je uvnitˇr um´ıstˇen napˇr´ıklad mal´ y obr´azek, ” ˇci logo. Na z´akladˇe dˇr´ıve zjiˇstˇen´eho k´odov´an´ı QR obrazce z bodu 6. jsou jednotliv´e rozpoznan´e bity dek´odov´any a je z nich sloˇzena v´ ysledn´a uloˇzen´a informace. Pokud bychom shrnuli v´ yˇse vysvˇetlen´e body, daj´ı se jednoduˇse rozdˇelit. A (body 2 - 5) jsou funkˇcn´ı vzory a B (body 6 - 7) jsou datov´e ˇca´sti.
3.3.2
Dostupn´ e knihovny
Na Internetu je k dispozici hned nˇekolik volnˇe dostupn´ ych knihoven pro dek´odov´an´ı QR obrazc˚ u.
ZXing1 ZXing je open-source knihovna pro ˇcten´ı jedno i dvourozmˇern´ ych ˇca´rov´ ych k´od˚ u (tedy i QR k´od˚ u) napsan´a v programovac´ım jazyce Java s porty do ostatn´ıch jazyk˚ u. D´a se vyuˇz´ıt jak pro ˇcten´ı QR k´od˚ u na zaˇr´ızen´ıch Android ˇci iOS, tak i pro generov´an´ı QR k´od˚ u.
1
dostupn´ a na https://code.google.com/p/zxing/
17
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
(a) Jednoduch´ y QR k´ od se zak´ odovanou textovou zpr´ avou.
WiFi
(b) QR k´od verze 40 - v souˇcasnosti nejvˇetˇs´ı QR k´od. Je sloˇzen z 177 x 177 modul˚ u.
Obr´azek 3.2: Uk´azka QR k´od˚ u Zbar2 Stejnˇe jako v pˇredchoz´ım pˇr´ıkladu, se i zde jedn´a o open-source knihovnu, kter´a um´ı tak´e ˇc´ıst v´ıcero druh˚ u ˇca´rov´ ych k´od˚ u. Nav´ıc dok´aˇze prov´adˇet skenov´an´ı k´od˚ u v re´aln´em ˇcase napˇr´ıklad z video stream˚ u. Knihovna je multiplatformn´ı. QR k´od je urˇcitˇe dalˇs´ı z technologi´ı, kter´a by se mˇela uplatnit pˇri realizaci syst´emu a klienta pro informaˇcn´ı maj´aky. Ke spr´avn´emu pˇreˇcten´ı QR k´odu staˇc´ı pouze kamera, kterou m´a dnes naprost´a vˇetˇsina mobiln´ıch zaˇr´ızen´ı.
3.4
WiFi
WiFi (nebo Wifi, Wi-Fi) je v souˇcasn´e dobˇe velmi rozˇs´ıˇren´a technologie umoˇzn ˇuj´ıc´ı zaˇr´ızen´ım vymˇen ˇovat si data bezdr´atovˇe. WiFi vyuˇz´ıv´a r´adiov´e vlny, kter´e vys´ıl´a na frekvenci 2,4 GHz nebo 5 GHz. WiFi je standardizovan´a technologie Institutem pro elektrotechnick´e a elektronick´e inˇzen´ yrstv´ı (IEEE) pod oznaˇcen´ım 802.11x, kde x zastupuje p´ısmeno znaˇc´ıc´ı konkr´etn´ı standard. 2
dostupn´ a na http://zbar.sourceforge.net/
18
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
WiFi
Vzhledem k dneˇsn´ı rozˇs´ıˇrenosti WiFi, kdy vys´ılaj´ıc´ıch zaˇr´ızen´ı je v obydlen´ ych oblastech a n´akupn´ıch centrech apod. velk´a hustota, je WiFi dalˇs´ım ide´aln´ım adeptem pro navrhovan´ y syst´em informaˇcn´ıch maj´ak˚ u - zamˇeˇreno na navigaci uvnitˇr budovy, kam nedos´ahne GPS sign´al. D´ıky jiˇz zm´ınˇen´e rozˇs´ıˇrenosti WiFi nen´ı zpravidla ani nutn´e budovat dodateˇcnou infrastrukturu a v pˇr´ıpadˇe nutnosti vybudov´an´ı WiFi infrastruktury nejsou dedikovan´e vys´ılaj´ıc´ı zaˇr´ızen´ı nijak n´akladnou z´aleˇzitost´ı. WiFi sign´al m´a uvnitˇr budovy pˇribliˇzn´ y dosah od 20 do 50 metr˚ u (tento u ´daj je samozˇrejmˇe z´avisl´ y na konkr´etnˇe pouˇzit´e specifikaci 802.11, s´ıle pouˇzit´eho vys´ılaˇce a charakteru pˇrek´aˇzek v okol´ı). Obecnˇe plat´ı, ˇze s´ıla sign´alu se zvyˇsuj´ıc´ı se vzd´alenost´ı od maj´aku kles´a a naopak. Veˇsker´e WiFi pˇr´ıstupov´e body podle specifikace 802.11 vys´ılaj´ı v urˇcit´em intervalu tzv. Beacon frame, coˇz je jeden z ˇr´ıd´ıc´ıch r´amc˚ u, ve kter´em jsou obsaˇzeny vˇsechny informace o dan´e s´ıti, jako je napˇr. BSSID, SSID3 , moˇznosti s´ıtˇe atd. To v praxi znamen´a, ˇze jak´ekoliv (nejen) mobiln´ı zaˇr´ızen´ı je schopn´e prozkoumat okol´ı a zjistit dostupn´e s´ıtˇe v okol´ı identifikovateln´e podle jedineˇcn´eho identifik´atoru v podobˇe BSSID a to i vˇcetnˇe s´ıly sign´alu. S´ıla sign´alu se ud´av´a v jednotce dBm 4 . Podle v´ ysledk˚ u pr˚ uzkumu okol´ı lze zjistit polohu uˇzivatele n´asleduj´ıc´ımi zp˚ usoby.
3.4.1
WiFi otisky
Tato metoda spoˇc´ıv´a v pr˚ uzkumu okol´ı v pravideln´ ych intervalech. V samotn´em zaˇr´ızen´ı nebo syst´emu, ke kter´emu se zaˇr´ızen´ı bude pˇripojovat, mus´ı existovat datab´aze WiFi pˇr´ıstupov´ ych bod˚ u, jejichˇz kombinace (nejl´epe seˇrazen´a podle s´ıly sign´alu) je pˇriˇrazena ke konkr´etn´ımu m´ıstu uvnitˇr budovy. Po prvn´ım pr˚ uzkumu okol´ı a porovn´an´ı dat s datab´az´ı je moˇzn´e urˇcit pˇribliˇznou uˇzivatelovu polohu uvnitˇr budovy a podle toho nechat syst´em d´al reagovat. Na obr´azku 3.3 je r´amcovˇe zn´azornˇeno pouˇzit´ı WiFi otisk˚ u. Na obr´azku jsou 3 vys´ılaˇce A, B, C, dva informaˇcn´ı maj´aky 1 a 2, kde WiFi otisk na jejich pozici je uveden v hranat´ ych z´avork´ach podle s´ıly namˇeˇren´eho sign´alu sestupnˇe. Posledn´ı je na sch´ematu n´avˇstˇevn´ık. Pokud by na sv´e souˇcasn´e pozici provedl pr˚ uzkum okol´ı, z´ısk´a WiFi otisk [C,B,A], coˇz podle uloˇzen´ ych otisk˚ u syst´em vyhodnot´ı jako skuteˇcnost, ˇze se n´avˇstˇevn´ık s nejvˇetˇs´ı pravdˇepodob3 4
neplat´ı v pˇr´ıpadˇe, ˇze je vys´ıl´ an´ı n´azvu s´ıtˇe zak´az´ano u 802.11 s´ıt´ı se pohybuje od -90dBm do -10dBm
19
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
WiFi
Obr´azek 3.3: Pˇr´ıklad pouˇzit´ı WiFi otisk˚ u. nost´ı vyskytuje v okol´ı informaˇcn´ıho maj´aku 2.
3.4.2
WiFi triangulace
Metoda WiFi triangulace vych´az´ı z pˇredchoz´ı metody. I zde se prov´ad´ı periodick´ y pr˚ uzkum okol´ı, ale mˇeˇr´ı se zde pokles ˇci zv´ yˇsen´ı s´ıly sign´alu jednotliv´ ych WiFi pˇr´ıstupov´ ych bod˚ u v okol´ı vzhledem k pˇredchoz´ım mˇeˇren´ı. Zahrnut´ım dat z pohybov´ ych senzor˚ u, kter´e m´a vˇetˇsina mobiln´ıch zaˇr´ızen´ı (at’ uˇz postaven´e na platformˇe Android, iOS ˇci Windows Phone), lze pˇresnˇeji zjistit polohu n´avˇstˇevn´ıka i pˇr´ıpadnˇe monitorovat jeho pohyb.
3.4.3
Omezen´ı mobiln´ıch platforem
Vyuˇzit´ı WiFi pro zjiˇstˇen´ı lokace je omezen´e pouze na platformu Android. Jak jiˇz bylo zm´ınˇeno v´ yˇse, WiFi pˇr´ıstupov´e body lze jedineˇcnˇe identifikovat pouze pomoc´ı BSSID. K tomuto u ´daji se pouˇzit´ım API lze dostat pouze na platformˇe Android. WiFi, at’ uˇz triangulace ˇci otisky, je dalˇs´ı technologie, kter´a m´a smysl pˇri realizaci klienta informaˇcn´ıch maj´ak˚ u. 20
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
Bluetooth
Na platformˇe iOS nen´ı moˇzn´e zjistit BSSID okoln´ıch zaˇr´ızen´ı aniˇz by aplikace nevyuˇz´ıvala priv´atn´ı API, kter´e pokud program´ator v aplikaci pouˇzije, tak vytvoˇrenou aplikaci nebude moci vystavit na port´alu AppStore. BSSID lze zjistit pouze v pˇr´ıpadˇe, ˇze je zaˇr´ızen´ı k WiFi s´ıti pˇripojeno, coˇz nen´ı pro automatick´e zjiˇst’ov´an´ı polohy podle okoln´ıch WiFi pˇr´ıstupov´ ych bod˚ u pouˇziteln´e. SDK platformy Windows Phone je v tomto ohledu jeˇstˇe omezenˇejˇs´ı, jelikoˇz nenab´ız´ı ˇza´dnou moˇznost, jak zjistit BSSID5 .
3.4.4
WiMax
WiMax je tak´e bezdr´atovou technologi´ı (IEEE 802.16), kter´a je ovˇsem zamˇeˇren´a sp´ıˇse na venkovn´ı s´ıtˇe. I pˇresto ji nˇekteˇr´ı v´ yrobci mobiln´ıch zaˇr´ızen´ı zaˇradili do sv´e v´ ybavy. WiMax s´ıtˇe zaˇcaly b´ yt budov´any v Americe v roce 2008, nicm´enˇe nezaznamenaly vˇetˇs´ı u ´spˇech a brzy je nahradily LTE s´ıtˇe. V´ yznamnˇejˇs´ıho u ´spˇechu dos´ahl WiMax pouze v Rusku, Mongolsku a P´akist´anu.[wim()] D´ıky tomu lze konstatovat, ˇze WiMax nen´ı pro potˇreby informaˇcn´ıch maj´ak˚ u ide´aln´ı technologi´ı jako je napˇr. WiFi, ale pˇri jej´ım pˇr´ıpadn´em vˇetˇs´ım rozˇs´ıˇren´ı by se dala vyuˇz´ıt alespoˇ n jako doplˇ nkov´a.
3.5
Bluetooth
Bluetooth je bezdr´atov´a technologie, kter´a se vyuˇz´ıv´a nejˇcastˇeji k v´ ymˇenˇe dat na kratˇs´ı vzd´alenosti. Bluetooth vys´ılaˇce jsou podle specifikace SIG6 rozdˇeleny do 3 tˇr´ıd: tˇ r´ıda 1 2 3
dosah aˇz 100 metr˚ u aˇz 10 metr˚ u okolo 1 metru
maxim´ aln´ı pˇ r´ıkon 100mW 2,5mW 1mW
Tabulka 3.1: Maxim´aln´ı dosah a pˇr´ıkon Bluetooth zaˇr´ızen´ı dle tˇr´ıdy.[bt()] Kaˇzd´e zaˇr´ızen´ı - stejnˇe jako tomu bylo v pˇr´ıpadˇe WiFi - m´a jedineˇcnou adresu, podle kter´e je moˇzn´e ho identifikovat. 5 6
plat´ı pro WP7 SDK i pro WP8 SDK SIG je organizace, kter´ a dohl´ıˇz´ı nad specifikac´ı Bluetooth
21
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
Bluetooth
Maxim´aln´ı teoretick´a rychlost, kterou m˚ uˇze Bluetooth dos´ahnout, je pro syst´em informaˇcn´ıch maj´ak˚ u nerelevantn´ım u ´dajem, jelikoˇz stejnˇe jako u WiFi m´a smysl pouˇz´ıvat Bluetooth pouze jako vys´ılaˇce - nen´ı tˇreba zaˇr´ızen´ı p´arovat a vymˇen ˇovat data. V´ yhodou Bluetooth je v pˇr´ıpadˇe tˇr´ıdy 2 a 3 jeho n´ızk´a energetick´a n´aroˇcnost, pˇriˇcemˇz mal´ y dosah sign´alu nen´ı pˇrek´aˇzkou (m˚ uˇze b´ yt naopak v´ yhodou). Samotn´ y vys´ılaˇc bez jak´ekoliv dalˇs´ı funkˇcnosti lze nap´ajet pouze bateri´ı a jeho poˇr´ızen´ı nen´ı finanˇcnˇe nijak n´aroˇcn´e.
3.5.1
Vyuˇ zit´ı
Oproti WiFi, kter´a je natolik rozˇs´ıˇren´a, ˇze ve valn´e vˇetˇsinˇe pˇr´ıpad˚ u nen´ı potˇreba dotv´aˇret infrastrukturu vys´ılaˇc˚ u, je Bluetooth v nev´ yhodˇe. V pˇr´ıpadˇe, ˇze by syst´em vyuˇz´ıval pouze Bluetooth vys´ılaˇce, musela by b´ yt s nejvˇetˇs´ı pravdˇepodobnost´ı vytvoˇrena nov´a s´ıt’ vys´ılaˇc˚ u. Se s´ıt´ı vys´ılaˇc˚ u, kter´e maj´ı pevn´e a zn´am´e um´ıstˇen´ı, m˚ uˇze b´ yt urˇcen´ı polohy n´avˇstˇevn´ıka o to pˇresnˇejˇs´ı. M´ırnˇe upraven´e n´ızkoenergetick´e Bluetooth 4.0 maj´aky pouˇzila spoleˇcnost Nokia a vyvinula syst´em HAIP7 , kter´ y se m´a vyznaˇcovat velmi velkou pˇresnost´ı (urˇcen´ı polohy aˇz na 20cm). [bt-()] Pro Bluetooth lze vyuˇz´ıt obdobn´e metody, tj. metoda otisk˚ u a metoda triangulace, jako u WiFi.
3.5.2
Omezen´ı mobiln´ıch platforem
I zde je omezen´ı obdobn´e jako u pˇr´ıpadu WiFi. Pouze platforma Android je schopn´a programovˇe zjistit jm´eno a unik´atn´ı adresu vys´ılaj´ıc´ıch Bluetooth zaˇr´ızen´ı v okol´ı. Nedovede ovˇsem uˇz zjistit s´ılu pˇrijat´eho sign´alu, ˇc´ımˇz se vyluˇcuje pouˇzit´ı zm´ınˇen´e metody triangulace a zb´ yv´a pouze metoda otisk˚ u. Metoda Bluetooth otisk˚ u v pˇr´ıpadˇe realizace Android klienta informaˇcn´ıch maj´ak˚ u m´a urˇcitˇe smysl. Na platformˇe iOS je omezen´ı tak´e obdobn´e jak´e bylo u WiFi. Jm´eno a unik´atn´ı adresu sice lze zjistit, ale pouze s pouˇzit´ım priv´atn´ıho API, coˇz opˇet 7
High Accuracy Indoor Positioning
22
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
Near Field Communication
znemoˇzn ˇuje vystavit aplikaci na port´alu AppStore. Pro Windows Phone 7 SDK nen´ı ˇza´dn´a moˇznost, jak pracovat s Bluetooth rozhran´ım. WP8 SDK jiˇz nab´ız´ı z´akladn´ı moˇznost, jak s Bluetooth rozhran´ım pracovat, bohuˇzel ale nenab´ız´ı moˇznost zobrazit okoln´ı viditeln´a zaˇr´ızen´ı.
3.6
Near Field Communication
Near Field Communication, dnes zn´am´a sp´ıˇse pod zkratkou NFC je masovˇe rozv´ıjej´ıc´ı se bezkontaktn´ı mobiln´ı technologi´ı“. V r´amci NFC je sada stan” dard˚ u, jak´ ym zp˚ usobem maj´ı zaˇr´ızen´ı nav´azat komunikaci mezi sebou. Jedn´a se o bezdr´atovou technologii, kter´a umoˇzn ˇuje bezkontaktn´ı platby, ˇcten´ı / z´apis dat pouze na velmi mal´e vzd´alenosti (zpravidla8 nesm´ı vzd´alenost b´ yt vˇetˇs´ı neˇz dvacet centimetr˚ u) apod. NFC je navrˇzeno tak, aby bylo kompatibiln´ı s existuj´ıc´ımi standardy bezkontaktn´ıch karet a jiˇz vytvoˇrenou infrastrukturou. [nfc(a)] Maxim´aln´ı rychlost pˇrenosu dat mezi dvˇema aktivn´ımi zaˇr´ızen´ımi m˚ uˇze dos´ahnout aˇz 1Mbit/s. V pˇr´ıpadˇe komunikace aktivn´ıho zaˇr´ızen´ı s pasivn´ım je rychlost aˇz 424 kbit/s, coˇz nen´ı nijak velk´a rychlost, ale vzhledem k vlastnostem pasivn´ıch zaˇr´ızen´ı (v´ıce v 3.6.1) a filosofie NFC je dostaˇcuj´ıc´ı.[nfc(a)]
komunikace aktivn´ı-aktivn´ı zaˇ r´ızen´ı Pˇri tomto druhu komunikace jsou obˇe zaˇr´ızen´ı nez´avisle na sobˇe nap´ajena a jsou tedy aktivn´ı. Takov´ ym pˇr´ıkladem komunikace jsou dvˇe zaˇr´ızen´ı smartphone vymˇen ˇuj´ıc´ı si data. NFC se v tomto pˇr´ıpadˇe vyplat´ı pouze na pˇrenos mal´eho objemu dat, jako je URL webov´e str´anky, vizitky atd. Pˇri vˇetˇs´ım objemu se dat, jako napˇr´ıklad multimedi´aln´ı soubory, se NFC pouˇzije pouze jako prostˇredek k vytvoˇren´ı napˇr´ıklad Bluetooth nebo WiFi Direct spojen´ı, pˇres kter´e jsou pak data posl´ana v´ yznamnˇe vˇetˇs´ı rychlost´ı. 8
jiˇz existuj´ı NFC proxy projekty, kter´e pˇres Internet zv´ yˇsit“ dosah na libovolnou ” vzd´ alenost
23
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
Near Field Communication
Obr´azek 3.4: Jak vypad´a NFC tag uvnitˇr. [nfc(b)] komunikace aktivn´ı-pasivn´ı zaˇ r´ızen´ı V pasivn´ım m´odu prob´ıh´a komunikace mezi aktivn´ım zaˇr´ızen´ım, kter´e komunikaci inicializuje, a nenap´ajen´em zaˇr´ızen´ım - tzv. tag. Jeho nejvˇetˇs´ı v´ yhoda je, ˇze nepotˇrebuje ˇza´dn´e baterie, aby udrˇzel uloˇzen´a data. Ant´ena pasivn´ıho zaˇr´ızen´ı (sloˇzen´ı je ilustrov´ano na obr´azku 3.4) je navrˇzen´a tak, aby mˇenila okoln´ı magnetick´e pole v energii vyuˇzitelnou pro sv´e nap´ajen´ı. Ant´ena reaguje pouze na magnetick´e pole o frekvenci 13,56MHz, kter´e vytv´aˇr´ı aktivn´ı zaˇr´ızen´ı, chce-li komunikovat. ˇ ım je ant´ena vˇetˇs´ı, Velikost ant´eny tagu se odr´aˇz´ı na kvalitˇe komunikace. C´ t´ım l´epe dok´aˇze nap´ajet tag a pˇrenosov´a rychlost je rychlejˇs´ı.
3.6.1
Typy tag˚ u, komunikace
Podle souˇcasn´e specifikace organizace NFC Forum jsou 4 typy NFC tag˚ u, kde kaˇzd´ y typ m´a jin´e parametry. Z´akladn´ı vlastnosti: • Type 1: pˇrepisovateln´ y, lze uzamknout pamˇet’ proti pˇreps´an´ı, velikost mezi 96B - 2kB. • Type 2: pˇrepisovateln´ y, lze uzamknout pamˇet’ proti pˇreps´an´ı, velikost mezi 48B - 2kB. • Type 3: pˇrepisovateln´ y, lze trvale uzamknout pamˇet’ proti pˇreps´an´ı, velikost aˇz 1MB.
24
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
Near Field Communication
• Type 4: pˇrepisovateln´ y, lze trvale uzamknout pamˇet’ proti pˇreps´an´ı, velikost aˇz 32kB. [nfc(d)] Velmi rozˇs´ıˇren´ ym z´astupcem je ˇcip typu 2 Mifare Classic 9 , kter´ y vych´az´ı ze specifikace organizace NXP a nen´ı tedy vyhovuj´ıc´ım NFC tagem. ˇ ı / z´apis na tento ˇcip je nicm´enˇe podporov´ano vˇetˇsinou aktivn´ıch NFC Cten´ zaˇr´ızen´ı, jelikoˇz jsou vybaveni NFC ˇcipem pr´avˇe od NXP. Ceny NFC tag˚ u se samozˇrejmˇe liˇs´ı podle druhu. Jiˇz zm´ınˇen´ y tag Mifare Classic 1k se ve formˇe n´alepek ˇci plastov´ ych pˇr´ıvˇesk˚ u d´a poˇr´ıdit od 30,-Kˇc za jeden kus. NFC Forum specifikovalo tak´e strukturu dat pro komunikaci s NFC tagy. Form´at dat se naz´ yv´a NDEF. Na tagy lze zapisovat i po jednotliv´ ych bitech na z´akladˇe sv´eho vlastn´ıho protokolu. Takov´ y tag je ovˇsem ˇciteln´ y pouze ˇcteˇckou, kter´a vlastn´ımu protokolu rozum´ı.
3.6.2
Vyuˇ zit´ı
NFC je technologie, kter´a bude urˇcitˇe zahrnuta pˇri realizaci Android klienta syst´emu informaˇcn´ıch maj´ak˚ u. D´ıky komunikaci pouze na p´ar centimetr˚ u lze n´avˇstˇevn´ıkovu polohu urˇcit velmi pˇresnˇe (samozˇrejmˇe za pˇredpokladu, ˇze NFC tag bude nepohybliv´ y a jeho poloha bude pˇresnˇe zn´ama). V tagu mohou nav´ıc b´ yt uloˇzena libovoln´a data, kter´e mohou vyvolat libovolnou akci. Platforma Android je plnˇe vybavena pro komunikaci s NFC ˇcipy. Platforma iOS nem´a pro komunikaci jakoukoliv podporu, coˇz logicky vych´az´ı ze skuteˇcnosti, ˇze spoleˇcnost Apple nem´a ve sv´em portfoliu ˇza´dn´e zaˇr´ızen´ı podporuj´ıc´ı tuto technologii. Windows Phone podporuje NFC aˇz od SDK verze 8. Tagy nemus´ı b´ yt omezeny pouze pro ˇcten´ı. N´avˇstˇevn´ık na nˇej m˚ uˇze i zapisovat data, ˇc´ımˇz se otev´ır´a velk´e mnoˇzstv´ı sc´en´aˇr˚ u pouˇzit´ı. Pˇri kaˇzd´em ˇcten´ı se m˚ uˇze napˇr´ıklad automaticky inkrementovat poˇcet pˇreˇcten´ı. Dalˇs´ım pˇr´ıkladem m˚ uˇze b´ yt spojen´ı se soci´aln´ı s´ıt´ı - pˇri ˇcten´ı se pˇreˇcte pˇredchoz´ı uloˇzen´a adresa profilu na soci´aln´ı s´ıti a do tagu se uloˇz´ı nov´a adresa profilu uloˇzen´a v zaˇr´ızen´ı n´avˇstˇevn´ıka. Profil posledn´ıho“ n´avˇstˇevn´ıka bude nab´ıdnut souˇcas” n´emu n´avˇstˇevn´ıkovi k dalˇs´ı akci (pˇrid´an´ı mezi pˇra´tel´e, napsat zpr´avu apod.). 9
napˇr. Plzeˇ nsk´ a karta nebo JIS karta jsou typu Mifare Classic 1k
25
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
3.6.3
Locata
Zabezpeˇ cen´ı vs. interaktivita
Pˇri interaktivn´ım vyuˇz´ıv´an´ı tag˚ u je tˇreba myslet i na zabezpeˇcen´ı. Napˇr´ıklad pokud NFC tag pouze obsahuje URL profilu na soci´aln´ı s´ıti, kter´ y telefon pot´e pouze otevˇre, m˚ uˇze u ´toˇcn´ık podvrhnout URL za svoji str´anku se ˇskodliv´ ym ˇ k´odem. Reˇsen´ım je trval´e zamknut´ı ˇcipu proti pˇreps´an´ı, ˇc´ımˇz ovˇsem ztr´ac´ıme interaktivitu. Dalˇs´ım ˇreˇsen´ım je NFC tag zaˇsifrovat. Tuto moˇznost ovˇsem nem´a kaˇzd´ y NFC ˇcip. Pˇr´ıkladem je napˇr´ıklad blokov´a ˇsifra 3DES nebo Crypto-1. Crypto-1 byla vyvinuta pˇr´ımo pro NFC tafy, vyuˇz´ıvaj´ıc´ı 48 bitov´e kl´ıˇce. D´ıky t´eto slabinˇe v podobˇe 48 bitov´ ych kl´ıˇc˚ u jiˇz byla pˇrekon´ana a metodou hrub´e s´ıly lze ˇsifru prolomit do 50 minut.[nfc(c)]
3.7
Locata
Locata je projekt ˇreˇs´ıc´ı nˇekter´e nedostatky GPS, jako je napˇr´ıklad slab´ y sign´al uvnitˇr budov. Projekt by nemˇel slouˇzit jako n´ahrada GPS, n´ ybrˇz jako rozˇs´ıˇren´ı a doplnˇen´ı GPS. Locata pokr´ yv´a vˇzdy urˇcitou oblast - nen´ı celosvˇetov´a. Vybran´a oblast se mus´ı pokr´ yt pozemn´ımi vys´ılaˇci. Vˇsechny vys´ılaˇce v dan´e oblasti jsou propojeny a neust´ale je jim synchronizov´an vnitˇrn´ı ˇcas. Stejnˇe jako GPS i Locata vys´ıl´a sign´aly se svoji polohou a ˇcasovou znaˇckou, kter´e koncov´e zaˇr´ızen´ı zachyt´av´a a urˇcuje tak svoji polohu. Hlavn´ım rozd´ılem je frekvence, na kter´e vys´ılaˇce vys´ılaj´ı (2,4 GHz), a v´ ykon vys´ılan´eho sign´alu, kter´ y je oproti GPS podstatnˇe vˇetˇs´ı. To t´eto technologii umoˇzn ˇuje, aby byl jej´ı sign´al zachytiteln´ y i uvnitˇr budov.[loc()]
3.7.1
Vyuˇ zit´ı
Pro syst´em informaˇcn´ıch maj´ak˚ u, kde klienti jsou pouze mobiln´ı zaˇr´ızen´ı, je bohuˇzel tato technologie nepouˇziteln´a. V souˇcasn´e dobˇe neexistuje ˇz´adn´e mobiln´ı zaˇr´ızen´ı, kter´e by dok´azalo tento sign´al zachytit, jelikoˇz pˇrij´ımaˇce nedos´ahly takov´eho stupnˇe miniaturizace, aby se daly um´ıstit pˇr´ımo do mobiln´ıho zaˇr´ızen´ı. 26
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
3.8
Rozpozn´an´ı obrazu sc´eny
Rozpozn´ an´ı obrazu sc´ eny
Dalˇs´ı moˇznost´ı jak urˇcit, ˇze n´avˇstˇevn´ık je na konkr´etn´ım m´ıstˇe v instituci, je porovn´an´ı okoln´ı scen´erie s nasn´ımanou scen´eri´ı. Metoda se zd´a b´ yt vyuˇziteln´a, jelikoˇz n´avˇstˇevn´ık potˇrebuje pouze zaˇr´ızen´ı s fotoapar´atem, kter´ y je dnes standardn´ı v´ ybavou, a v´ ypoˇcetn´ı v´ ykon, kter´ y dneˇsn´ı zaˇr´ızen´ı dovedou bez probl´em˚ u poskytnout.
Sn´ım´ an´ı konkr´ etn´ıho m´ısta V tomto pˇr´ıpadˇe by n´avˇstˇevn´ık musel dopˇredu vˇedˇet, jakou sc´enu m´a na mobiln´ım zaˇr´ızen´ı zachytit. Ta by se porovnala se uloˇzen´ ymi sc´enami v syst´emu a podle podobnosti by se dalo rozhodnout, kde n´avˇstˇevn´ık stoj´ı. Jednotliv´e sc´eny by samozˇrejmˇe v syst´emu musely b´ yt uloˇzeny spoleˇcnˇe s polohou odkud byly poˇr´ızeny.
Pr˚ ubˇ eˇ zn´ e sn´ım´ an´ı Oproti pˇredchoz´ımu pˇr´ıkladu by zde prob´ıhalo pr˚ ubˇeˇzn´e sn´ım´an´ı sc´eny a neust´al´e porovn´av´an´ı dat se syst´emem. Tento pˇr´ıstup se jev´ı jako nev´ yhodn´ y, protoˇze neust´al´e porovn´av´an´ı by vyˇzadovalo vyˇsˇs´ı v´ ypoˇcetn´ı v´ ykon, coˇz by se nepˇr´ıznivˇe projevilo na v´ ydrˇzi baterie mobiln´ıho zaˇr´ızen´ı. Porovn´an´ı by bylo moˇzn´e pˇresunout do syst´emu (na serverovou ˇc´ast). To by ovˇsem znamenalo kaˇzdou zachycenou sc´enu odeslat na server, coˇz by mohlo generovat velk´ y datov´ y tok. At’ uˇz se jedn´a o sn´ım´an´ı konkr´etn´ıho m´ısta nebo o pr˚ ubˇeˇzn´e sn´ım´an´ı, m˚ uˇze b´ yt tato metoda nepˇresn´a. Hlavnˇe u sn´ım´an´ı venkovn´ıch sc´en, kdy nemus´ı b´ yt svˇeteln´e podm´ınky konstantn´ı, m˚ uˇze syst´em vyhodnotit podobnosti chybnˇe. Urˇcitou pomoc´ı v tomto probl´emu by mohlo b´ yt vybudov´an´ı s´ıtˇe statick´ ych kamer, kter´e by v urˇcit´em intervalu sn´ımaly konkr´etn´ı sc´enu a aktu´aln´ı sn´ımek poslaly do syst´emu jako pˇredlohu pro porovn´av´an´ı. Dalˇs´ım negativn´ım vlivem na spr´avnost porovn´an´ı sc´en m˚ uˇze b´ yt kvalita fotoapar´at˚ u v mobiln´ıch zaˇr´ızen´ı, kde se rozliˇsen´ı sn´ımaˇce fotoapar´atu m˚ uˇze pohybovat od 0,3 Mpx do 15 Mpx.
27
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
LED diody
Obrazy by ˇsly napˇr´ıklad porovn´avat podle jejich histogram˚ u, coˇz pˇri v´ yˇse uveden´ ych ˇskodliv´ ych vlivech nemus´ı b´ yt dostateˇcnˇe pˇresn´e. Dalˇs´ı metody a algoritmy porovn´av´an´ı obraz˚ u zde nebudou uvedeny, jelikoˇz to nen´ı n´apln´ı t´eto pr´ace. Z´avˇerem pro tuto metodu lze konstatovat, ˇze je pro informaˇcn´ı syst´emy sp´ıˇse nepouˇziteln´a.
3.9
LED diody
LED diody jsou dalˇs´ım n´astrojem, jak lze zjistit polohu n´avˇstˇevn´ıka. Lze totiˇz vyuˇz´ıt toho, ˇze jej´ı sv´ıt´ıc´ı P-N pˇrechod diody nem´a ˇza´dnou setrvaˇcnost, jako je tomu u klasick´e ˇz´arovky, tud´ıˇz rozsv´ıcen´ı a zhas´ın´an´ı je prakticky okamˇzit´e. LED dioda potom m˚ uˇze blikat urˇcitou unik´atn´ı frekvenc´ı nebo podle pˇredepsan´eho unik´atn´ıho vzoru tak, ˇze pro lidsk´e oko bude toto blik´an´ı nepostˇrehnuteln´e a bude se jevit jako konstantn´ı svit. Tuto frekvenci ˇci vzor je schopn´ y zachytit fotoapar´at, kter´ y blik´an´ı dok´aˇze detekovat a zpracovat. Na z´akladˇe zpracovan´e informace je moˇzn´e zjistit, kterou diodu zaˇr´ızen´ı zachytilo a se znalost´ı rozm´ıstˇen´ı kaˇzd´e diody je moˇzn´e relativnˇe pˇresnˇe urˇcit aktu´aln´ı polohu uˇzivatele.
3.9.1
Vyuˇ zit´ı
Vyuˇzit´ı LED diod je omezeno v´ yhradnˇe na vnitˇrn´ı pouˇzit´ı, jelikoˇz pouˇzit´ı ve venkovn´ıch prostor´ach by bylo znaˇcnˇe ovlivnˇeno okoln´ım svˇetlem. Nav´ıc samotn´e pouˇzit´ı LED diod / ˇza´rovek nem´a pˇres den venku opodstatnˇen´ı (pro venkovn´ı prostory je ide´aln´ı technologi´ı GPS). Pˇri pouˇzit´ı ve vnitˇrn´ıch prostor´ach by se musela vybudovat s´ıt’ blikaj´ıc´ıch diod. Nav´ıc jejich rozm´ıstˇen´ı by muselo b´ yt vhodnˇe uspoˇra´d´ano, aby nedoch´azelo k jejich vz´ajemn´emu ruˇsen´ı. I ve vnitˇrn´ıch prostor´ach by mohlo doj´ıt pˇres den k ruˇsen´ı venkovn´ım svˇetlem, pokud by byly diody nevhodnˇe um´ıstˇeny - napˇr´ıklad bl´ızko u oken. Pro realizovan´ y syst´em informaˇcn´ıch maj´ak˚ u bylo rozhodnuto tuto technologii nevyuˇz´ıt, kv˚ uli n´aroˇcnosti vybudov´an´ı infrastruktury.
28
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
Zvuk
Dalˇs´ı vˇec´ı, na kterou je tˇreba d´at pozor pˇri urˇcov´an´ı frekvence blik´an´ı jednotliv´ ych diod je, aby blik´an´ı nebylo postˇrehnuteln´e lidsk´ ym okem. Nevhodn´e blik´an´ı by mohlo b´ yt zdrojem probl´em˚ u pro n´avˇstˇevn´ıky, kteˇr´ı trp´ı epileptick´ ymi z´achvaty. Tuto technologii vzal za svou syst´em ByteLight, kter´ y vytvoˇril vlastn´ı LED ˇza´rovky pouˇziteln´e jako pro osvˇetlen´ı tak z´aroveˇ n i pro identifikaci. V´ıce je o syst´emu uvedeno v sekci 2.6 na stranˇe 11.
3.10
Zvuk
Dalˇs´ım vyuˇziteln´ ym zdrojem, kter´ y je vˇsude kolem n´as, je zvuk. Stejnˇe jako v pˇredchoz´ım pˇr´ıkladu s LED diodami, kde se vyuˇz´ıvalo jedineˇcn´e frekvence blik´an´ı, kter´e bylo nav´ıc lidsk´ ym okem nepostˇrehnuteln´e, by se dal obdobnˇe vyuˇz´ıt zvuk. Zvuk by bud’ musel b´ yt za hranic´ı slyˇsitelnosti lidsk´ ym uchem, nebo by musel slouˇzit jako kulisa k urˇcit´e situaci v instituci (napˇr´ıklad v zoologick´e zahradˇe by se mohlo jednat o zvuky zv´ıˇrat nebo prostˇred´ı, ve kter´em ˇzij´ı). Zvuky, at’ uˇz lidsk´ ym uchem slyˇsiteln´e ˇci neslyˇsiteln´e, by zachyt´avalo mobiln´ı zaˇr´ızen´ı, kter´e by okamˇzitˇe prov´adˇelo jeho anal´ yzu. Anal´ yza zvuku by se na mobiln´ıch zaˇr´ızen´ıch dala prov´adˇet technikou zvanou Rychl´a Fourierova transformace (FFT). V´ yhodou je, ˇze FFT se d´a upravit, aby nebyla v´ ypoˇcetnˇe tak n´aroˇcn´a a dala se prov´adˇet v re´aln´em ˇcase i na mobiln´ıch zaˇr´ızen´ı.
3.10.1
Vyuˇ zit´ı
Jak jiˇz bylo zm´ınˇeno, v´ ypoˇcetn´ı n´aroˇcnost anal´ yzy sign´alu by nebyla na mobiln´ıch zaˇr´ızen´ıch pˇrek´aˇzkou. Vˇsechny mobiln´ı platformy maj´ı dostupn´e API, pro pr´aci s mikrofonem. Probl´emem by mohlo b´ yt okoln´ı ruˇsen´ı. Napˇr´ıklad v uzavˇren´e m´ıstnosti pln´e lid´ı, by mohl b´ yt zachycen´ y zvukov´ y sign´al natolik zkreslen, ˇze nebude rozpozn´an. Z v´ yˇse uveden´ ych d˚ uvod˚ u nebude tato technologie zahrnuta do pˇripravovan´eho klienta informaˇcn´ıch maj´ak˚ u.
29
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
3.11
Dalˇs´ı metody
Dalˇ s´ı metody
N´asleduj´ıc´ı metody jsou zaloˇzeny ˇcistˇe na znalostech ˇci aktu´aln´ıch vjemech uˇzivatele. Nevyuˇz´ıv´a se zde jak´ehokoliv elektromagnetick´eho z´aˇren´ı, ˇci programov´eho zpracov´an´ı obrazu ˇci zvuku, jako tomu bylo ve v´ yˇse uveden´ ych moˇznostech identifikace.
3.11.1
Metody z´ avisl´ e na znalostech
U t´eto metody by se dalo vyuˇz´ıt znalost´ı n´avˇstˇevn´ıka. M˚ uˇze se jednat napˇr´ıklad o metodu h´adanek. Pokud bude znˇen´ı h´adanky um´ıstˇeno pouze na jednom konkr´etn´ım m´ıstˇe, po jej´ım spr´avn´em zodpovˇezen´ı je jasn´e, kde se n´avˇstˇevn´ık pohybuje. Metoda bude bl´ıˇze vysvˇetlena na konkr´etn´ı modelov´e situace. Pˇredstavme si n´avˇstˇevn´ıka zoologick´e zahrady, kter´ y pˇrijde k v´ ybˇehu slon˚ u. Na mal´e informaˇcn´ı tabulce, kde b´ yvaj´ı z´akladn´ı informace o dan´em zv´ıˇreti, bude text h´adanky (napˇr. Kolik je slon˚ u v naˇs´ı zoologick´e zahradˇe?“). ” Pokud ji n´avˇstˇevn´ık uh´adne a do klienta nap´ıˇse spr´avnou odpovˇed’, bude mu zobrazen dalˇs´ı, napˇr´ıklad i multimedi´aln´ı obsah o dan´em zv´ıˇreti. Odpovˇed’ m˚ uˇze b´ yt validov´ana pˇr´ımo na mobiln´ım klientovi, ˇci pˇres Internet v serverov´e ˇc´asti syst´emu. Probl´em u t´eto metody m˚ uˇze b´ yt v jazykov´e bari´eˇre. Nemus´ı se tedy hodit pro instituce, kde je pˇredpoklad, ˇze ji budou navˇstˇevovat i n´avˇstˇevn´ıci ze zahraniˇc´ı. Dalˇs´ı pˇrek´aˇzkou by mohla b´ yt nevhodnˇe zvolen´a h´adanka, na kterou lze odpovˇedˇet i v´ıce zp˚ usoby, pˇr´ıpadnˇe je h´adanka natolik sloˇzit´a, ˇze ji uhodne pouze mal´e procento n´avˇstˇevn´ık˚ u a t´ım budou ostatn´ı zbyteˇcnˇe ochuzeni o bonusov´ y materi´al. Moˇznost´ı rozˇs´ıˇren´ı t´eto metody je velk´e mnoˇzstv´ı. Metoda by se napˇr´ıklad dala rozˇs´ıˇrit o bonusov´e body za kaˇzdou spr´avnˇe uhodnutou h´adanku. Pˇredem definovan´ y poˇcet z´ıskan´ ych bod˚ u by mohl n´avˇstˇevn´ık vymˇenit za spr´avnou odpovˇed’ na h´adanku, kterou nem˚ uˇze vyˇreˇsit. N´avˇstˇeva instituce se pot´e st´av´a jakousi hrou.
30
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
3.11.2
Odhalen´ı podvod˚ u
Metoda zaloˇ zen´ a na vˇ s´ımavosti
Tato metoda je velmi podobn´a pˇredchoz´ı metodˇe. Zde se ovˇsem nevyuˇz´ıv´a n´avˇstˇevn´ık˚ uv intelekt, n´ ybrˇz jeho vˇs´ımavost. Metoda bude opˇet vysvˇetlena na pˇr´ıkladu. Pˇri vstupu do instituce bude n´avˇstˇevn´ıkovi d´ano na vˇedom´ı, ˇze jsou u jednotliv´ ych expon´at˚ u skryty napˇr´ıklad ˇc´ıseln´e k´ody, kter´e m´a hledat. Po nalezen´ı konkr´etn´ıho ˇc´ıseln´eho k´odu, ho n´avˇstˇevn´ık zad´a do klientsk´e aplikace a ta mu v pˇr´ıpadˇe spr´avnosti m˚ uˇze zobrazit dalˇs´ı obsah spojen´ y s t´ımto ˇc´ıseln´ ym k´odem podobnˇe, jako tomu bylo u pˇredchoz´ı metody h´adanek. Tato metoda ˇreˇs´ı probl´em pˇredchoz´ı metody s jazykovou bari´erou, pˇriˇcemˇz ˇ ıseln´ je do jist´e m´ıry zachov´an model hry. C´ y k´od zapsan´ y arabsk´ ymi ˇc´ıslicemi je ˇciteln´ y pro vˇetˇsinu populace, jelikoˇz se jedn´a o dnes nejrozˇs´ıˇrenˇejˇs´ı syst´em z´apisu ˇc´ısel. D´ıky sv´e obecnosti a jednoduchosti bude tato metoda zahrnuta do realizovan´eho klienta syst´emu informaˇcn´ıch maj´ak˚ u.
3.12
Odhalen´ı podvod˚ u
Zaveden´ı syst´emu informaˇcn´ıch maj´ak˚ u m˚ uˇze b´ yt pro libovolnou instituci ˇcasovˇe pˇr´ıpadnˇe i finanˇcnˇe n´akladn´e. Pokud by identifikace informaˇcn´ıch maj´ak˚ u n´avˇstˇevn´ıkem byla odmˇenˇena bonusov´ ym multimedi´aln´ım obsahem, m˚ uˇze se st´at, ˇze provozovatel instituce nebude cht´ıt, aby se k bonusov´emu obsahu dostali i lid´e, kteˇr´ı jeho instituci nenavˇst´ıvili. V pˇr´ıpadˇe, ˇze pˇri identifikaci maj´ak˚ u bude uˇzivateli zobrazeno napˇr. pouze reklamn´ı sdˇeln´ı, nen´ı tˇreba tento probl´em ˇreˇsit. Pˇredstavme si ovˇsem situaci, kdy bonusov´ y materi´al v podobˇe vide´ı, jejichˇz vytvoˇren´ı bylo n´akladn´e, je dostupn´ y po zad´an´ı ˇc´ıseln´e kombinace. Tyto kombinace se daj´ı po cel´e instituci vyhledat a libovolnˇe nasd´ılet na Internetu. Pak tyto ˇc´ıseln´e k´ody m˚ uˇze zadat do klientsk´e aplikace uˇzivatel, kter´ y instituci nikdy nenavˇst´ıvil, a pˇresto dostane bonusov´ y materi´al. Tento probl´em se net´ yk´a technologi´ı WiFi, Bluetooth, LED diody a zvuk. Uˇzivatel, kter´ y by se chtˇel neopr´avnˇenˇe dostat k bonusov´emu obsahu, by musel nasimulovat stejn´e podm´ınky, jako jsou u konkr´etn´ıho maj´aku. U pˇr´ı31
Moˇznosti identifikace informaˇcn´ıch maj´ak˚ u
Pˇr´ınos pro instituci
padu WiFi by musel vytvoˇrit identickou infrastrukturu vys´ılaˇc˚ u (tzn. stejn´e BSSID s pˇr´ısluˇsn´ ym v´ ykonem), pro metodu LED diod by musel zjistit ´ ı spojen´e se zjiˇstˇen´ım nutn´ frekvenci a vzor blik´an´ı diody apod. Usil´ ych informac´ı bude zpravidla vˇetˇs´ı, neˇz klasick´a n´avˇstˇeva instituce.
3.12.1
Spojen´ı s GPS polohou
Mnohem menˇs´ı u ´sil´ı vyˇzaduje zjiˇstˇen´ı bonusov´ ych k´od˚ u (viz 3.11.2), okop´ırov´an´ı QR k´od˚ u (viz 3.3) ˇci pˇreˇcten´ı obsahu NFC tagu a jeho znovu vytvoˇren´ı (pokud nen´ı tag zaˇsifrov´an, viz 3.6) Jedn´ım z moˇzn´ ych ˇreˇsen´ı je kontrola aktu´aln´ı polohy uˇzivatele. Pˇred zobrazen´ım bonusov´eho obsahu je moˇzn´e kontrolovat polohu uˇzivatele a v pˇr´ıpadˇe, ˇze se od instituce nach´az´ı d´al, neˇz je pˇredem definovan´ y poˇcet metr˚ u (kilometr˚ u), nebude mu obsah zobrazen. I aktu´aln´ı polohu uˇzivatele, lze na mobiln´ıch zaˇr´ızen´ı oklamat pomoc´ı tzv. mock locations, nicm´enˇe existuj´ı metody, jak tomu zabr´anit.
3.13
Pˇ r´ınos pro instituci
Implementace syst´emu informaˇcn´ıch maj´ak˚ u m˚ uˇze b´ yt sice n´akladn´a, nicm´enˇe zved´a u ´roveˇ n interaktivity a atraktivity dan´e instituce. Informaˇcn´ı maj´aky nemus´ı plnit pouze funkci nositel˚ u obsahu, ale mohou b´ yt souˇc´ast´ı soutˇeˇze. Lze si pˇredstavit soutˇeˇz, kde n´avˇstˇevn´ıci soutˇeˇz´ı v poˇctu nalezen´ ych maj´ak˚ u. Za urˇcit´ y poˇcet nalezen´ ych maj´ak˚ u m˚ uˇze b´ yt n´avˇstˇevn´ık napˇr´ıklad odmˇenˇen reklamn´ımi pˇredmˇety, slevou na dalˇs´ı vstupn´e atd. Vyhl´aˇsen´ı nov´ ych soutˇeˇz´ı m˚ uˇze pˇril´akat potencion´aln´ı n´avˇstˇevn´ıky k opˇetovn´e n´avˇstˇevˇe, pro kterou by jinak nemˇeli d˚ uvod apod. V navrhovan´em syst´emu budou k identifikaci maj´ak˚ u pouˇzity technologie GPS, QR k´od, WiFi, Bluetooth, NFC a metoda zaloˇzen´a na vˇs´ımavosti (v podobˇe ˇc´ıseln´ ych k´od˚ u). Realizovan´ y mobiln´ı klient na platformˇe Android bude schopen vyuˇz´ıvat vˇsechny vyjmenovan´e technologie a metody. Ostatn´ı platformy (iOS, Windows Phone) budou vyuˇz´ıvat pouze podmnoˇzinu technologi´ı, kterou dan´a platforma umoˇzn ˇuje.
32
4 Platforma Android Platformu Android nen´ı nutn´e v dneˇsn´ı dobˇe nijak zvl´aˇst’ pˇredstavovat. Jedn´a se o mobiln´ı platformu, na kter´e jsou dnes postaveny stovky mili´on˚ u nejen mobiln´ıch zaˇr´ızen´ı po cel´em svˇetˇe, a jejich poˇcet kaˇzd´ ym dnem roste. Kaˇzd´ y 1 den je po svˇetˇe aktivov´ano v´ıce neˇz 1 milion zaˇr´ızen´ı. . Detailn´ı popis cel´e platformy je uveden v m´e bakal´aˇrsk´e pr´aci s n´azvem Knihovna pro tvorbu s´ıt’ov´ych aplikac´ı v OS Android v kapitole 2 a 3. V´ yˇse odkazovan´a bakal´aˇrsk´a pr´ace popisuje platformu do verze 3 vyjma. V dneˇsn´ı dobˇe je tato platforma ve verzi 4.0 (k´odov´e oznaˇcen´ı Ice Cream Sandwich), 4.1, 4.2 (Jelly Bean). Verze 4 mˇela hlavnˇe za u ´kol sjednotit verze a pouˇzit´ı API mezi mobiln´ımi zaˇr´ızen´ımi a tablety a celkovˇe v´ıce sjednotit doted’ roztˇr´ıˇstˇenou platformu (co se verz´ı t´ yˇce). 5. verze s k´odov´ ym oznaˇcen´ım Key Lime Pie se pˇripravuje k vyd´an´ı. Pˇredstavena by mˇela b´ yt na festivalu Google I/O v p˚ ulce kvˇetna letoˇsn´ıho roku.
4.1
Novinky
V t´eto sekci budou uvedeny pouze nˇekter´e novinky2 od verze 3, kter´e jsou bud’ velmi v´ yznamn´e nebo byly pouˇzity pˇri tvorbˇe klienta informaˇcn´ıch maj´ak˚ u.
4.1.1
Project Butter
Od verze 4.1 pˇridal Google do v´ ybavy platformy tzv. Project Butter, kter´ y odstraˇ nuje jeden z velk´ ych probl´em˚ u platformy, a t´ım je pomal´a reakce syst´emu a nepˇr´ıliˇs plynul´e grafick´e efekty. V pˇrekladu se Projekt M´aslo“ jmenuje velmi pˇr´ıznaˇcnˇe, jelikoˇz s jeho ” implementac´ı bˇeˇz´ı grafick´e efekty a odezva jak po m´asle“. Vyuˇzit´ım metody ” tripple buffering se zvedl poˇcet sn´ımk˚ u za vteˇrinu (fps) aˇz na hodnotu 60. 1
u ´daj z dubna 2013 [and(e)] v´ ypis vˇsech novinek je dostupn´ y na adrese http://developer.android.com /about/versions/index.html 2
33
Platforma Android
Novinky
Obr´azek 4.1: Uk´azka UI prvku Action Bar[and(a)]
Obr´azek 4.2: Uk´azka UI prvku Title Bar
4.1.2
Vloˇ zen´ e fragmenty
Od verze 4.2 (API 17) je moˇzn´e nejen vkl´adat fragmenty do aktivit, ale fragmenty do jiˇz vloˇzen´ ych fragment˚ u. T´ım se daj´ı vytv´aˇret znovupouˇziteln´e komponenty (fragmenty), kter´e lze vyuˇz´ıt pro tvorbu dynamick´eho UI. V´ıce o fragmentech je k nalezen´ı v n´asleduj´ıc´ı sekci 4.3.
4.1.3
Action Bar
Action Bar je prvek UI, kter´ y od verze 3 kompletnˇe nahrazuje dosavadn´ı title bar um´ıstˇen´ y vˇzdy na vrchu aplikace. Jedn´a o jeden z nejd˚ uleˇzitˇejˇs´ıch UI prvk˚ u, kter´ y lze v aplikaci implementovat. Obsahuje logo aplikace3 a navigaˇcn´ı prvky, at’ uˇz se jedn´a o tlaˇc´ıtko up, kter´e proch´az´ı zpˇetnˇe aplikaci dle stavu z´asobn´ıku, ˇci z´aloˇzkov´e menu nebo roletovou navigaci. Na obr´azku 4.1 jsou vidˇet v´ yˇse zm´ınˇen´e komponenty. Pod ˇc´ıslem 1 je logo aplikace a navigaˇcn´ı tlaˇc´ıtko up, pod ˇc´ıslem 2 je navigaˇcn´ı komponenta. Pod ˇc´ıslem 3 a 4 jsou jednotliv´e prvky Action Menu. Ty jsou bud’ vidˇet jako samostatn´e ikony, pokud to tak program´ator zam´ yˇslel a je na Action Baru dostatek m´ısta a nebo jsou skryt´e a zobraz´ı se aˇz po kliknut´ı na symbol zde oznaˇcen´ y ˇc´ıslem 4. Cel´ y Action Bar je upraviteln´ y, tud´ıˇz nen´ı probl´em do nˇej vloˇzit napˇr´ıklad vyhled´avac´ı pole, pouˇz´ıt na nˇej styly, aby vyhovoval grafick´emu designu aplikace nebo ho lze u ´plnˇe skr´ yt. Oproti Title Bar u nab´ız´ı mnohem vˇetˇs´ı prostor a funkˇcnost, coˇz je zˇrejm´e pˇri porovn´an´ı obr´azk˚ u 4.1 a 4.2 3
z´ akladn´ı nastaven´ı, lze samozˇrejmˇe skr´ yt ˇci nahradit za jak´ ykoliv libovoln´ y obr´azek
34
Platforma Android
4.1.4
Pˇrehled verz´ı
API podpory r˚ uzn´ ych obrazovek
Od verze 3.2 nab´ız´ı platforma nov´e pˇrepracovan´e API pro podporu r˚ uzn´ ych velikost´ı a rozliˇsen´ı obrazovek. OS Android nebˇeˇz´ı totiˇz v´ yhradnˇe na mobiln´ıch zaˇr´ızen´ıch, ale i napˇr´ıklad na televiz´ıch. Na v´ yvoj´aˇre je ze strany spoleˇcnosti Google vyv´ıjen tlak, aby svou aplikaci vytvoˇrili pouze v jedn´e verzi, kter´a si sama porad´ı s r˚ uzn´ ym rozliˇsen´ı a velikost´ı obrazovek. Toto nov´e API tento u ´kol v´ yvoj´aˇr˚ um usnadˇ nuje. V´ yvoj´aˇri tedy staˇc´ı naprogramovat logickou ˇc´ast aplikace pouze jednou a pot´e jen“ vytvoˇrit r˚ uzn´e rozloˇzen´ı prvk˚ u na z´akladˇe typu a rozliˇsen´ı obra” zovky, na kter´e dan´a aplikace zrovna bˇeˇz´ı. Nov´e API pˇrid´av´a nov´e konfiguraˇcn´ı kvalifik´atory, u kter´ ych lze pˇresnˇe specifikovat ˇs´ıˇrku / v´ yˇsku v jednotk´ach dp: swXXXdp wXXXdp hXXXdp
Urˇcuje minim´aln´ı ˇs´ıˇrku v dp, pro kterou se maj´ı zdroje pouˇz´ıt. Tato hodnota je nez´avisl´a na konkr´etn´ı orientaci zaˇr´ızen´ı. Minim´aln´ı ˇs´ıˇrka v dp, pro kterou se maj´ı pˇr´ısluˇsn´e zdroje pouˇz´ıt. Tato hodnota je z´avisl´a na konkr´etn´ı orientaci zaˇr´ızen´ı. Analogicky v pˇredchoz´ımu ˇra´dku pro v´ yˇsku. Tabulka 4.1: Nov´e kvalifik´atory.[and(b)]
Kvalifik´atory se daj´ı samozˇrejmˇe i kombinovat, ˇc´ımˇz lze dos´ahnout kvalitn´ıho UI pro t´emˇeˇr jak´ekoliv zaˇr´ızen´ı. Pˇr´ıklady jsou uvedeny v tabulce 4.2. kvalifik´ ator sw600dp sw720dp w600dp sw600dp-w720dp
pˇ r´ıklad pouˇ zit´ı nejˇcastˇeji 7” tablety nejˇcastˇeji 10” tablety minim´aln´ı ˇs´ıˇrka pro pouˇzit´ı v´ıce panelov´eho UI zaˇr´ızen´ı s velkou ˇs´ıˇrkou
Tabulka 4.2: Pˇr´ıklad pouˇzit´ı kvalifik´ator˚ u.[and(b)]
4.2
Pˇ rehled verz´ı
Jak je vidˇet na obr´azku 4.3, cel´a platforma proch´az´ı neust´al´ ym a docela ˇziv´ ym v´ yvojem. Za necel´e dva roky se dˇr´ıve majoritn´ı zastoupen´ı verze 2.2 (Froyo) zmˇenilo na na minoritn´ı zastoupen´ı s 4% pod´ılem. Tuto verzi v pr˚ ubˇehu 35
Platforma Android
Fragmenty
(a) Pod´ıl verz´ı v kvˇetnu 2011
(b) Pod´ıl verz´ı v dubnu 2013
Obr´azek 4.3: Porovn´an´ı pod´ılu jednotliv´ ych verz´ı OS Android v´ yznamnˇe nahradila verze 2.3.x, kter´a je ovˇsem za sv´ ym vrcholem a kaˇzd´ y mˇes´ıc ztr´ac´ı pˇribliˇznˇe 5% pod´ılu na u ´kor nov´e verze 4+. I verze 3.x je postupnˇe utlumov´ana, jelikoˇz se uk´azalo, ˇze ˇslo pouze o pˇrechodnou verzi pro tablety a od verze 4 obsahuje Android SDK n´astroje, aby mohly aplikace fungovat korektnˇe jak na tabletech, tak telefonech.
4.2.1
Support Library
Aˇckoliv zastoupen´ı verze 2.3.x na trhu st´ale kles´a, je poˇcet zaˇr´ızen´ı st´ale v´ yznamn´ y. Jelikoˇz se platforma Android snaˇz´ı zm´ırnit svou roztˇr´ıˇstˇenost, pˇripravila tzv. support library, kter´a umoˇzn ˇuje pouˇz´ıvat vˇetˇsinu nov´ ych funkc´ı API i na starˇs´ıch zaˇr´ızen´ı s niˇzˇs´ı verz´ı OS Android. Jej´ım c´ılem je zjednoduˇsit v´ yvoj a umoˇznit v´ yvoj´aˇri m´enˇe se starat o verze, na kter´ ych jeho aplikace pobˇeˇz´ı. Tato knihovna umoˇzn ˇuje pouˇz´ıvat nov´e API na zaˇr´ızen´ıch uˇ z od verze 1.6, kter´ ych je m´enˇe neˇz 0.1%. Je tedy napˇr. moˇzn´e vyuˇz´ıvat fragmenty, ve verzi, kter´a na nˇe nikdy nebyla pˇripravena. V pˇr´ıpadˇe vyuˇzit´ı knihovny, mus´ı b´ yt samozˇrejmˇe tato knihovna souˇc´ast´ı aplikace.
4.3
Fragmenty
Prvek fragment je s´am o sobˇe novinkou, kter´a v´ıcem´enˇe zmˇenila cel´ y n´avrh aplikac´ı, a proto je mu vˇenov´ana cel´a sekce. Fragmenty se v platformˇe objevily 36
Platforma Android
Fragmenty
ˇ Obr´azek 4.4: Zivotn´ ı cyklus fragmentu.[and(c)] od verze 3.0. Fragment se nejˇcastˇeji pouˇz´ıv´a jako ˇca´st uˇzivatelsk´eho rozhran´ı. Lze o nˇem ˇ sm´ yˇslet jako o podaktivitˇe“, kter´a m´a sv˚ uj vlastn´ı ˇzivotn´ı cyklus. Zivotn´ ı ” cyklus fragmentu se liˇs´ı pouze v p´ar detailech od ˇzivotn´ıho cyklu aktivity, je ovˇsem ovlivnˇen ˇzivotn´ım cyklem aktivity, ve kter´e je um´ıstˇen. Fragment m˚ uˇze existovat i bez uˇzivatelsk´eho rozhran´ı, je tedy pro uˇzivatele neviditeln´ y a prov´ad´ı pouze pr´aci na pozad´ı. Pˇri tvorbˇe fragmentu by mˇel program´ator implementovat minim´alnˇe metody onCreate(), onPause() a v pˇr´ıpadˇe, ˇze je fragment souˇc´ast´ı uˇzivatelsk´eho rozhran´ı, tak i metodu onCreateView(), kter´a vrac´ı vykreslen´e uˇzivatelsk´e rozhran´ı.
37
Platforma Android
Fragmenty
Obr´azek 4.5: Uk´azka v´ıcen´asobn´eho pouˇzit´ı fragmentu.[and(c)] Vloˇ zen´ı fragmentu Fragment s´am o sobˇe nem˚ uˇze existovat, vˇzdy mus´ı b´ yt vloˇzen v nˇejak´e aktivitˇe. Pokud se fragment pouˇz´ıv´a jako ˇc´ast uˇzivatelsk´eho rozhran´ı, mˇel by b´ yt navrˇzen jako znovupouˇziteln´a komponenta aktivity. Filosofie fragmentu totiˇz ˇr´ık´a, ˇze by fragment mˇel b´ yt pouˇziteln´ y ve v´ıce aktivit´ach. Uk´azka pouˇzit´ı je vidˇet na obr´azku 4.5. V lev´e ˇca´sti je vidˇet tablet, kter´ y si m˚ uˇze d´ıky velk´e obrazovce dovolit um´ıstit jak fragment se seznamem, tak fragment s detailem do jedn´e aktivity. Naproti tomu v prav´e ˇca´sti je vidˇet klasick´ y telefon s nedostateˇcnou ˇs´ıˇrkou displeje. Detail je proto zobrazen samostatnˇe v dalˇs´ı aktivitˇe. Fragment lze do aktivity vloˇzit bud’ staticky v r´amci pˇredem definovan´eho uˇzivatelsk´eho rozhran´ı aktivity v XML souboru nebo dynamicky za bˇehu aplikace. Prvn´ı pˇr´ıpad je vidˇet na n´asleduj´ıc´ım v´ ypisu k´odu. V druh´em pˇr´ıpadˇe se vyuˇz´ıv´a tzv. transakc´ı fragment˚ u. Kaˇzd´a aktivita m´a sv˚ uj FragmentManager, kter´ y umoˇzn ˇuje vkl´adat fragmenty do aktivity za bˇehu. Pˇr´ıklad pouˇzit´ı je uveden za n´asleduj´ıc´ım v´ ypisem k´odu. Po zavol´an´ı metody commit() je transakce dokonˇcena a fragment je uˇzivateli zobrazen. Vol´an´ım metody addToBackStack(), se fragment pˇrid´a do z´asobn´ıku aplikace, tud´ıˇz pˇri stisku tlaˇc´ıtka zpˇet“, se provede odstranˇen´ı fragmentu, nikoliv cel´e ak” tivity. 1 2 3
xml version = " 1.0 " encoding = " utf -8 " ? > < LinearLayout xmlns:android = " http: // schemas . android . com / apk / res / android " an dr oid :l ayo ut_ wi dth = " match_parent "
38
Platforma Android
4 5 6 7 8 9 10 11
1 2 3 4 5 6
Fragmenty
a nd ro i d: l ay ou t _h ei g ht = " match_parent " andr oid:orie ntation = " vertical " > < fragment android:id = " @ + id / supportMapFragment " an dr oid :l ayo ut_ wi dth = " match_parent " a nd ro i d: l ay ou t _h ei g ht = " match_parent " class = " com . google . android . gms . maps . SupportMapFragment " /> LinearLayout >
// ukazka pouziti transakci Fragment fragment = new ReviewsFragment () ; FragmentTran saction ft = getFragmentManager () . beginTransaction () ; ft . replace ( android . R . id . content , fragment ) ; ft . addToBackStack ( null ) ; ft . commit () ;
4.3.1
Komunikace s aktivitou
Aˇckoliv je fragment komponenta, kter´a m´a b´ yt pouˇzita nez´avisle na aktivitˇe, je obˇcas nutn´e, aby s aktivitou komunikoval. K tomu je tˇreba vytvoˇrit si callback rozhran´ı, kter´e bude fragment po aktivitˇe poˇzadovat, aby ho implementovala. Pˇri vytv´aˇren´ı fragmentu, si v metodˇe onAttach() fragment otestuje, zda je jeho poˇzadavek splnˇen. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
private Get Content DataIfac e mActivityRef ; // callback rozhrani public interface GetCon tentData Iface { public Beacon getBeaconData () ; public List < Resources > getAllResources () ; } @Override public void onAttach ( Activity activity ) { super . onAttach ( activity ) ; try { // test zda je splnen pozadavek fragmentu mActivityRef = ( G etConten tDataIf ace ) activity ; } catch ( ClassCastException e ) { throw new ClassCastException ( activity . toString () + " must implement GetContentData interface " ) ; } }
39
Platforma Android
4.4
Vhodnost pro realizaci klienta
Vhodnost pro realizaci klienta
Platforma Android je pro realizaci klienta syst´emu informaˇcn´ıch maj´ak˚ u v´ıce neˇz vhodn´a. Je to pˇredevˇs´ım z´asluhou jej´ı rozˇs´ıˇrenosti po cel´em svˇetˇe, ale tak´e d´ıky otevˇrenosti t´eto platformy. V kapitole 3 bylo uvedeno mnoˇzstv´ı zp˚ usob˚ u, jak lze informaˇcn´ı maj´aky identifikovat s vyuˇzit´ım mobiln´ıho zaˇr´ızen´ı. V pˇr´ıpadech 3.4 a 3.5, kdy se jedn´a o pomˇernˇe kl´ıˇcov´e technologie4 pro identifikaci maj´ak˚ u, se vyskytl u platforem iOS a Windows Phone probl´em. Nen´ı totiˇz moˇzn´e programovˇe z´ıskat potˇrebn´e informace. U platformy Android k ˇza´dn´emu takov´emu omezen´ı nedoch´az´ı. Lze tedy konstatovat, ˇze m´a smysl realizovat klienta pro syst´em informaˇcn´ıch maj´ak˚ u na platformˇe Android.
4
WiFi a Bluetooth
40
5 Mobiln´ı klient pro platformu Android V t´eto kapitole bude podrobnˇe pops´an proces tvorby mobiln´ıho klienta pro platformu Android. Nejprve vˇsak bude pops´an syst´em, ke kter´emu klient pˇristupuje.
5.1
Popis vytvoˇ ren´ eho syst´ emu Tagiee
Syst´em, jako serverov´a ˇc´ast pro mobiln´ı klienty, byl vytvoˇren v r´amci diplomov´e pr´ace Syst´em pro spr´avu a realizaci informaˇcn´ıch maj´aku, kterou vypracoval Bc. Ludˇek Vlk v roce 2013. Vytvoˇren´ y syst´em dostal n´azev Tagiee a slouˇz´ı jako katalog instituc´ı a informaˇcn´ıch maj´ak˚ u pro mobiln´ı klienty. Syst´em disponuje webov´ ym rozhran´ım pro administraci, skrze kter´e m˚ uˇze spr´avce sv´e instituce spravovat - m˚ uˇze pˇrid´avat / mazat / upravovat informaˇcn´ı maj´aky, m˚ uˇze upravovat informace o instituci samotn´e, at’ uˇz se jedn´a o popis, cenu vstupn´eho ˇci otev´ırac´ı hodiny. Pro kaˇzd´ y informaˇcn´ı maj´ak lze definovat vlastn´ı obsah, vˇcetnˇe multim´edi´ı. Kaˇzd´ y informaˇcn´ı maj´ak m´a pˇriˇrazenou svou polohu“. Polohou se ne” mysl´ı pouze geografick´e souˇradnice - m˚ uˇze b´ yt nav´ıc doplnˇena o WiFi ˇci Bluetooth otisk (viz 3.4.1, 3.5) nebo nemus´ı v˚ ubec geografick´ yu ´daj obsahovat a m˚ uˇze b´ yt urˇcena pouze tˇemito otisky a to nejˇcastˇeji v pˇr´ıpadˇe identifikace uvnitˇr budov. Polohy jsou do syst´emu zad´av´any vyuˇzit´ım administraˇcn´ı aplikace Tagiee Admin, viz 5.8. Syst´em je navrˇzen dostateˇcnˇe obecnˇe, aby bylo moˇzn´e co nejˇsirˇs´ı vyuˇzit´ı a z´aroveˇ n, aby bylo moˇzn´e vytvoˇrit pouˇziteln´e mobiln´ı klienty jak na platformˇe Android, tak i na platform´ach iOS a Windows Phone, jejichˇz nˇekter´a omezen´ı pˇri identifikaci informaˇcn´ıch maj´ak˚ u jsou uvedeny v kapitole 3. Podrobn´ y popis syst´emu je k dispozici v diplomov´e pr´aci Bc. Lud’ka Vlka - Syst´em pro spr´avu a realizaci informaˇcn´ıch maj´aku, v kapitol´ach 3 a 4.
41
Mobiln´ı klient pro platformu Android
5.2
N´avrh aplikace
N´ avrh aplikace
V t´eto ˇca´sti bude pops´an n´avrh realizovan´e klientsk´e aplikace - jej´ı funkce a uˇzivatelsk´e rozhran´ı.
5.2.1
Funkce aplikace
Klientsk´a aplikace Tagiee byla navrˇzena tak, aby mˇela n´asleduj´ıc´ı funkˇcnost:
Zobrazen´ı instituc´ı Po startu bude aplikace zjiˇst’ovat aktu´aln´ı polohu zaˇr´ızen´ı prostˇrednictv´ım lokalizaˇcn´ıch sluˇzeb. Na z´akladˇe zjiˇstˇen´e lokace poˇza´d´a Tagiee syst´em o vr´acen´ı seznamu instituc´ı, kter´e syst´em Tagiee vyuˇz´ıvaj´ı a kter´e jsou vzd´aleny maxim´alnˇe N kilometr˚ u. Tato konstanta je definov´ana v syst´emu Tagiee. Po vybr´an´ı instituce bude zobrazen jej´ı detail a uˇzivatel bude moci pokraˇcovat s vyuˇz´ıv´an´ım aplikace. V pˇr´ıpadˇe, ˇze by uˇzivatel nechtˇel nebo nemohl m´ıt zapnut´e lokalizaˇcn´ı sluˇzby, bude mu nab´ıdnuta moˇznost pˇrihl´asit1 se do instituce zad´an´ım jej´ıho unik´atn´ıho identifik´atoru nazvan´eho uiid. Tento identifik´ator si mus´ı uˇzivatel zjistit s´am. Aplikace d´ale nab´ıdne seznam jiˇz navˇst´ıven´ ych instituc´ı, ke kter´ ym se bude moci uˇzivatel znovu pˇrihl´asit. Pˇrihl´aˇsen´ı k instituc´ım bude moˇzn´e i bez dostupn´eho internetov´eho pˇripojen´ı - viz d´ale.
Komunikace s Tagiee API Aplikace bude schopn´a komunikovat pˇres Internet s Tagiee syst´emem skrze API. Komunikace mus´ı prob´ıhat i na pomal´em mobiln´ım pˇripojen´ı k Internetu. Pˇr´ıkazy a odpovˇedi jsou podrobnˇeji pops´any v ˇc´asti 5.2.3. 1
nejedn´ a se o pˇrihl´ aˇsen´ı ve smyslu zad´an´ı jm´ena a hesla - pˇrihl´aˇsen´ı prob´ıh´a automaticky na pozad´ı, viz 5.2.4
42
Mobiln´ı klient pro platformu Android
N´avrh aplikace
Zobrazen´ı z´ akladn´ıch informac´ı o instituci Po zvolen´ı a pˇrihl´aˇsen´ı se ke konkr´etn´ı instituci aplikace uˇzivateli zobraz´ı z´akladn´ı informace o instituci, jako je jej´ı struˇcn´ y popis, kontaktn´ı u ´daje, otev´ırac´ı hodiny, cena vstupn´eho, poloha na mapˇe a hodnocen´ı. D´ale bude uˇzivateli zobrazen v´ yˇcet technologi´ı (WiFi, Bluetooth, lokalizaˇcn´ı sluˇzby), kter´e by mˇel m´ıt povolen´e, aby byl schopn´ y aplikaci pro konkr´etn´ı instituci plnˇe vyuˇz´ıt. V pˇr´ıpadˇe dostupn´eho pˇripojen´ı k Internetu se provede kontrola, zda jsou data uloˇzen´a v zaˇr´ızen´ı o dan´e instituci aktu´aln´ı a pˇr´ıpadnˇe se provede jejich aktualizace.
Identifikace maj´ ak˚ u Aplikace bude schopn´a prov´adˇet identifikaci maj´ak˚ u vyuˇzit´ım n´asleduj´ıc´ıch metod. Po u ´spˇeˇsn´e identifikaci zobraz´ı obsah identifikovan´eho informaˇcn´ıho maj´aku. • poloha: Aplikace bude zjiˇst’ovat co nejpˇresnˇejˇs´ı aktu´aln´ı polohu uˇzivatele vyuˇzit´ım lokalizaˇcn´ıch sluˇzeb, d´ale bude zjiˇst’ovat okoln´ı WiFi a Bluetooth vys´ıl´an´ı. Na z´akladˇe zjiˇstˇen´ ych informac´ı se bude aplikace snaˇzit urˇcit a zobrazit nejbliˇzˇs´ı informaˇcn´ı maj´aky v okol´ı uˇzivatele. Algoritmus identifikace vyuˇzit´ım tˇechto technologi´ı je pops´an v sekci 5.2.5. • k´ od: Aplikace bude umoˇzn ˇovat uˇzivateli zadat tˇr´ım´ıstn´ y ˇc´ıseln´ y k´od coby podruˇzn´ y jedineˇcn´ y identifik´ator informaˇcn´ıho maj´aku. • QR k´ od: Aplikace bude umoˇzn ˇovat uˇzivateli naskenovat a vyhodnotit QR k´od. K tomuto u ´ˇcelu nebude pouˇzita extern´ı ˇcteˇcka (ve smyslu jin´e aplikace), ale skenov´an´ı QR k´odu bude prob´ıhat pˇr´ımo v klientsk´e aplikaci. • NFC: Aplikace bude umoˇzn ˇovat ˇc´ıst NFC tagy. NFC tag bude typu 2 (viz 3.6.1) a zpr´ava v nˇem bude naform´atov´ana ve form´atu NDEF. • Historie: Aplikace bude umoˇzn ˇovat uˇzivateli nechat si zobrazit seznam jiˇz nalezen´ ych informaˇcn´ıch maj´ak˚ u.
43
Mobiln´ı klient pro platformu Android
N´avrh aplikace
Zobrazen´ı obsahu maj´ aku Aplikace bude umˇet zobrazit obsah informaˇcn´ıho maj´aku. Bude se jednat o textov´e informace a odkazy doplnˇen´e o galerii obr´azk˚ u a streamovan´e video.
Hodnocen´ı instituce Klient bude umoˇzn ˇovat zobrazit dostupn´e hodnocen´ı instituce, ke kter´e je uˇzivatel aktu´alnˇe pˇrihl´aˇsen, a d´ale mu dovol´ı danou instituci ohodnotit 1 - 5 hvˇezdami vˇcetnˇe kr´atk´eho slovn´ıho hodnocen´ı.
Offline prohl´ıˇ zen´ı Aplikace dovol´ı uˇzivateli po pˇrihl´aˇsen´ı k instituci st´ahnout veˇsker´ y jej´ı multimedi´aln´ı obsah do vnitˇrn´ıho u ´loˇziˇstˇe zaˇr´ızen´ı. To umoˇzn´ı uˇzivateli aplikaci aktivnˇe vyuˇz´ıvat i v pˇr´ıpadˇe nedostupnosti internetov´eho pˇripojen´ı a z´aroveˇ n tato funkˇcnost ˇsetˇr´ı mobiln´ı datov´ y tarif, pokud bude v instituci volnˇe pˇr´ıstupn´a WiFi pro u ´ˇcely staˇzen´ı offline obsahu. D´ale aplikace uˇzivateli dovol´ı jiˇz staˇzen´ y obsah dan´e instituce z vnitˇrn´ı pamˇeti zaˇr´ızen´ı vymazat.
Odes´ıl´ an´ı statistik Klient bude odes´ılat statistiky vyuˇz´ıv´an´ı cel´eho syst´emu. Bude odes´ılat statistiky typu • uˇzivatel se pˇrihl´asil do instituce • uˇzivatel naˇsel informaˇcn´ı maj´ak a zobrazil si jeho obsah. V tomto pˇr´ıpadˇe bude odes´ılat i zp˚ usob, jak maj´ak naˇsel - tzn. podle polohy, pˇreˇcten´ım QR k´odu, vloˇzen´ım ˇc´ıseln´eho k´odu, pˇreˇcten´ım NFC tagu. Odes´ıl´an´ı statistik se mus´ı v pˇr´ıpadˇe nedostupnosti internetov´eho pˇripojen´ı pozdrˇzet a prov´est aˇz pˇri dostupnosti pˇripojen´ı k Internetu.
44
Mobiln´ı klient pro platformu Android
N´avrh aplikace
Best Practices Aplikace bude dodrˇzovat best practices jak pro v´ ydrˇz baterie, tak pro pamˇet’ovou n´aroˇcnost. Aplikace bude vyuˇz´ıvat lokalizaˇcn´ı sluˇzby pouze v pˇr´ıpadˇe, ˇze je opravdu potˇrebuje. T´ım se v´ yraznˇe ˇsetˇr´ı baterie zaˇr´ızen´ı. D´ale bude aplikace vyuˇz´ıvat holder pattern pro spr´avnou recyklaci View a t´ım se sn´ıˇz´ı pamˇet’ov´a n´aroˇcnost aplikace.
Jedineˇ cn´ a identifikace Uˇzivatel a jeho zaˇr´ızen´ı se bude v˚ uˇci syst´emu Tagiee ovˇeˇrovat automaticky na z´akladˇe jedineˇcn´eho identifik´atoru zaˇr´ızen´ı, viz ˇca´st 5.2.4.
5.2.2
N´ avrh UI
N´avrh jednotliv´ ych komponent UI a jejich propojen´ı je zn´azornˇeno na obr´azku 5.1. Siln´e ˇca´ry zn´azorˇ nuj´ı pˇrechody v aplikaci. Slab´e ˇca´ry jsou znakem vloˇzen´ı prvku UI do st´avaj´ıc´ıho stavu aplikace. V (v poˇrad´ı) druh´e aktivitˇe, kter´a v sobˇe drˇz´ı prvek ViewPager, jsou vloˇzeny 4 Fragmenty horizont´alnˇe za sebou. K pˇrepnut´ı mezi nimi doch´az´ı pˇri gestu zvan´em swipe. Obecnˇe k pˇrechodu na obr´azku 5.1 doch´az´ı pˇri uˇzivatelsk´em vstupu (pˇr. dotek, stisk kl´avesy) nebo na z´akladˇe ud´alosti (pˇr. pˇribl´ıˇzen´ı zaˇr´ızen´ı k NFC tagu, rozpozn´an´ı QR k´odu apod.)
5.2.3
Komunikace se syst´ emem Tagiee
V pˇr´ıpadˇe dostupnosti internetov´eho pˇripojen´ı bude aplikace komunikovat se serverovou ˇca´st´ı syst´emu Tagiee, aby z´ıskala aktu´aln´ı data. Poˇzadavky i odpovˇedi budou ve form´atu JSON. Komunikaˇcn´ı rozhran´ı je na adrese http:// api.tagiee.com. API syst´emu Tagiee nab´ız´ı n´asleduj´ıc´ı pˇr´ıkazy: • add_review - tento pˇr´ıkaz se napln´ı jedineˇcn´ ym identifik´atorem za45
Mobiln´ı klient pro platformu Android
N´avrh aplikace
Obr´azek 5.1: N´avrh komponent UI a jejich prov´az´an´ı 46
Mobiln´ı klient pro platformu Android
N´avrh aplikace
ˇr´ızen´ı, poˇctem hvˇezd, kter´ y uˇzivatel instituci dal, a kr´atk´ ym slovn´ım ohodnocen´ım. • beacon_found - tento pˇr´ıkaz slouˇz´ı k odes´ıl´an´ı informace, ˇze zaˇr´ızen´ı objevilo a zobrazilo konkr´etn´ı maj´ak. Souˇca´st´ı je jedineˇcn´ y identifik´ator zaˇr´ızen´ı, identifik´ator maj´aku, kter´ y byl nalezen, a zp˚ usob jak´ ym byl nalezen. • device_visit_institution - tento pˇr´ıkaz slouˇz´ı k odesl´an´ı informace ou ´spˇeˇsn´em pˇrihl´aˇsen´ı uˇzivatele k instituci. Pˇr´ıkaz obsahuje identifik´ator zaˇr´ızen´ı uˇzivatele a identifik´ator instituce. • get_institution_by_uiid - odesl´an´ım tohoto poˇzadavku chce klient z´ıskat kompletn´ı informace o dan´e instituci urˇcen´e jej´ım identifik´atorem. Odpovˇed’ v pˇr´ıpadˇe u ´spˇechu obsahuje kompletn´ı informace o instituci, metadata o vˇsech informaˇcn´ıch maj´ac´ıch a popis veˇsker´eho multimedi´aln´ıho obsahu. • get_institution_list - tento poˇzadavek vrac´ı jako odpovˇed’ seznam instituc´ı vyuˇz´ıvaj´ıc´ı syst´em Tagiee v pˇredem definovan´e maxim´aln´ı vzd´alenosti. Jako parametry poˇzadavku jsou odes´ıl´any souˇradnice aktu´aln´ı polohy. • get_institution_revision - jednoduch´ y poˇzadavek na zjiˇstˇen´ı hodnoty ˇc´ısla revize dat konkr´etn´ı instituce. • get_review - odpovˇed´ı na tento poˇzadavek klient z´ısk´a seznam hodnocen´ı dan´e instituce. Seznam m˚ uˇze b´ yt kompletn´ı ˇci omezen shora nebo zdola. Kompletn´ı uk´azka jednotliv´ ych poˇzadavk˚ u a odpovˇed´ı sloˇzen´ ych ve form´atu JSON je uveden v pˇr´ıloze A.3.
5.2.4
Jedineˇ cn´ a identifikace zaˇ r´ızen´ı
Pro syst´em Tagiee je kritick´e, aby bylo moˇzn´e jednoznaˇcnˇe a unik´atnˇe identifikovat kaˇzd´e mobiln´ı zaˇr´ızen´ı, kter´e bude k syst´emu pˇristupovat. Jelikoˇz je syst´em navrˇzen tak, aby k nˇemu mohlo pˇristupovat v´ıce platforem (Android, iOS, Windows Phone) bylo nutn´e tuto identifikaci zobecnit.
47
Mobiln´ı klient pro platformu Android
N´avrh aplikace
K tomu lze vyuˇz´ıt knihovnu openUDID, kter´a dok´aˇze generovat jedineˇcn´ y identifik´ator pro kaˇzd´e zaˇr´ızen´ı i napˇr´ıˇc platformami. Na platformˇe Android vytv´aˇr´ı knihovna 32 znak˚ u dlouh´ y hash, kter´ y je sloˇzen z MAC adresy WiFi rozhran´ı, MAC adresy Bluetooth rozhran´ı, IMEI a Android ID, coˇz je 64bitov´e ˇc´ıslo, kter´e je n´ahodnˇe vygenerovan´e pˇri prvn´ım startu zaˇr´ızen´ı a z˚ ust´av´a stejn´e aˇz do proveden´ı obnovy do tov´arn´ıho nastaven´ı.
Uk´ azka pouˇ zit´ı Knihovna je pro platformu Android dostupn´a na adrese https://github.com /jasonlamkk/OpenUDID. Staˇc´ı st´ahnout a do projektu vloˇzit jedinou Java tˇr´ıdu openUDID.java. Pro co nejlepˇs´ı vyuˇzit´ı s minim´aln´ı ˇsanc´ı duplicitn´ıch identifik´ator˚ u je vhodn´e do manifestu aplikace vloˇzit n´asleduj´ıc´ı opr´avnˇen´ı, jeˇz dovol´ı zjistit MAC adresy WiFi a Bluetooth a IMEI telefonu: 1 2 3
< uses - permission android:name = " android . permission . ACCESS_WIFI_STATE " / > < uses - permission android:name = " android . permission . BLUETOOTH " / > < uses - permission android:name = " android . permission . READ_PHONE_STATE " / >
V samotn´e aplikaci se zjiˇstˇen´ı prov´ad´ı n´asleduj´ıc´ı sekvenc´ı pˇr´ıkaz˚ u. 1 2 3 4 5
// staci provest pouze jednou za beh aplikace OpenUDID . syncContext ( ge tA p pl ic a ti o nC on t ex t () ) ; // takto se ziska presistentni jedninecny identifikator pro dane zarizeni v ramci domeny - com . tagiee String mUdid = OpenUDID . getCorpUDID ( " com . tagiee " ) ;
5.2.5
Algoritmus hled´ an´ı polohy
V t´eto sekci bude pops´an algoritmus urˇcen´ı polohy uˇzivatele a nejbliˇzˇs´ıch maj´ak˚ u na z´akladˇe okoln´ıho WiFi a Bluetooth vys´ıl´an´ı a geografick´ ych souˇradnic. Algoritmus vych´az´ı ze stavu, kdy m´a aplikace pˇrehled o vˇsech informaˇcn´ıch maj´ac´ıch instituce - tzn. zn´a bud’ jejich geografickou polohu nebo WiFi otisk ˇci Bluetooth otisk, popˇr´ıpadˇe jejich kombinaci. 48
Mobiln´ı klient pro platformu Android
N´avrh aplikace
V´ ybˇ er metody Jak pro WiFi, tak pro Bluetooth byla vybr´ana metoda otisk˚ u. U technologie Bluetooth nebyla kv˚ uli omezen´ ym moˇznostem Android SDK jin´a volba, avˇsak u WiFi byla na v´ ybˇer bud’ metoda otisk˚ u ˇci metoda triangulace (viz sekce 3.4). Z tˇechto dvou metod byla zvolena obecnˇejˇs´ı metoda otisk˚ u. Zvolena byla pr´avˇe z d˚ uvodu jej´ı obecnosti, jelikoˇz i cel´ y syst´em Tagiee je navrhov´an co nejv´ıce obecnˇe. Dalˇs´ım d˚ uvodem byla skuteˇcnost, ˇze metoda triangulace se vyuˇz´ıv´a mnohem v´ıce ve spojen´ı s mapov´ ymi podklady, coˇz by vyˇzadovalo povinnost pro kaˇzdou instituci dodat do syst´emu pl´any jednotliv´ ych pater (v pˇr´ıpadˇe, ˇze bude m´ıt informaˇcn´ı maj´aky uvnitˇr budov).
Skenov´ an´ı okol´ı Na zaˇca´tku zjiˇst’ov´an´ı polohy se spust´ı vl´akno, kter´e prov´ad´ı pr˚ ubˇeˇzn´e skenov´an´ı okol´ı a hled´a viditeln´e WiFi a Bluetooth vys´ılaˇce2 . Z´aroveˇ n se aplikace zaregistruje pro odbˇer aktualizac´ı polohy. Proces skenov´an´ı WiFi a Bluetooth zaˇr´ızen´ı je zcela odliˇsn´ y. U WiFi je po zavol´an´ı funkce getScanResults() k dispozici cel´ y seznam vˇsech okoln´ıch WiFi s´ıt´ı. Pˇri zjiˇst’ov´an´ı okoln´ıch Bluetooth zaˇr´ızen´ı se aplikace mus´ı pˇrihl´asit k odbˇeru broadcast zpr´av, kdy pˇri kaˇzd´em novˇe objeven´em zaˇr´ızen´ı pˇrich´az´ı jedna zpr´ava obsahuj´ıc´ı informaci o nˇem. Uk´azky jsou v n´asleduj´ıc´ıch dvou v´ ypisech k´odu. 1 2 3 4 5 6 7
1 2 3 4
// ziskani spravce WiFi WifiManager mWifiManager = ( WifiManager ) context . getSystemService ( Activity . WIFI_SERVICE ) ; if ( mWifiManager . isWifiEnabled () ) { if ( mWifiManager . startScan () ) { // ziskani vysledku skenovani WiFi siti List < ScanResult > scanResultList = mWifiManager . getScanResults () ;
// ziskani rozhrani pro praci s Bluetooth BluetoothAdapter mBtAdapter = BluetoothAdapter . getDefaultAdapter () ; if ( mBtAdapter != null ) { 2
pouze v pˇr´ıpadˇe, ˇze m´ a uˇzivatel tyto technologie v zaˇr´ızen´ı dostupn´e a aktivn´ı
49
Mobiln´ı klient pro platformu Android
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
N´avrh aplikace
// registrace odberu broadcast zprav IntentFilter filter = new IntentFilter ( BluetoothDevice . ACTION_FOUND ) ; context . registerReceiver ( mReceiver , filter ) ; if ( mBtAdapter . isEnabled () ) { if (! mBtAdapter . isDiscovering () ) mBtAdapter . startDiscovery () ; // sken trva 12 a vice vterin } } ... // definice prijimace bcast zprav s novym BT zarizenim mReceiver = new BroadcastReceiver () { public void onReceive ( Context context , Intent intent ) { // zpracovani dat v intentu , v pripade ukonceni skenovani spustit znovu } }
P´ arov´ an´ı Jakmile pˇrijde informace o nov´e lokaci nebo nov´ y seznam dostupn´ ych WiFi vys´ılaˇc˚ u ˇci novˇe objeven´e Bluetooth zaˇr´ızen´ı, spust´ı se nov´e p´arovac´ı“ vl´ak” no, pokud jiˇz nebˇeˇz´ı. Toto vl´akno se snaˇz´ı postupnˇe porovnat pozice a otisky vˇsech maj´ak˚ u v instituci s aktu´aln´ım stavem. Pro kaˇzd´ y pr˚ ubˇeh p´arov´an´ı dostane kaˇzd´ y maj´ak hodnotu p´ar˚ u = 0. V pˇr´ıpadˇe, ˇze m´a maj´ak uloˇzen u ´daj o jeho geografick´e poloze a aktu´aln´ı vzd´alenost uˇzivatele od maj´aku je menˇs´ı neˇz 20 metr˚ u, pˇriˇcte se mu jeden bod k hodnotˇe p´ar˚ u. V pˇr´ıpadˇe, ˇze je maj´ak definov´an WiFi otiskem, zjist´ı se nejprve relativn´ı hodnota shody. To v praxi znamen´a, ˇze se vezme velikost WiFi otisku - seznam BSSID seˇrazen´ y sestupnˇe dle s´ıly sign´alu - a d´elkou tohoto seznamu se vydˇel´ı ˇc´ıslo 100. T´ım z´ısk´ame hodnotu, kterou naz´ yv´ame relativn´ı hodnota shody. Po zjiˇstˇen´ı relativn´ı hodnoty shody se prov´ad´ı porovn´av´an´ı s aktu´aln´ım stavem WiFi okol´ı. Za kaˇzdou shodu prvk˚ u ve WiFi otisku maj´aku a v aktu´aln´ım seznamu WiFi vys´ılaˇc˚ u se pˇriˇcte k celkov´e m´ıˇre shody relativn´ı hodnota shody. Pokud nav´ıc souhlas´ı i poˇrad´ı v seznamu, pˇriˇc´ıt´a se jeˇstˇe mal´ y bonus v podobˇe 5 bod˚ u. Pro Bluetooth otisk je situace analogick´a, zde se ovˇsem hled´a pouze shoda 50
Mobiln´ı klient pro platformu Android
N´avrh aplikace
v Bluetooth otisku maj´aku a aktu´aln´ı seznamu vys´ılaj´ıc´ıch Bluetooth zaˇr´ızen´ı. Jelikoˇz Android programovˇe neumoˇzn ˇuje zjistit s´ılu sign´alu, poˇrad´ı Bluetooth zaˇr´ızen´ı v otisku nehraje ˇza´dnou roli. Jak pro WiFi, tak pro Bluetooth se na z´avˇer provede vyhodnocen´ı. Pokud celkov´a m´ıra shody pˇres´ahne 49%, pˇriˇc´ıt´a se k aktu´aln´ı hodnotˇe p´ar˚ u dan´eho maj´aku 1 bod. Vˇsechny maj´aky instituce, kter´e maj´ı hodnotu p´ar˚ u vˇetˇs´ı neˇz ˇ ım vˇetˇs´ı je 0, jsou povaˇzov´any za maj´aky vyskytuj´ıc´ı se v okol´ı uˇzivatele. C´ hodnota p´ar˚ u, t´ım je vˇetˇs´ı pravdˇepodobnost, ˇze je maj´ak v bl´ızkosti uˇzivatele. Aplikace vrac´ı seznam okoln´ıch maj´ak˚ u seˇrazen´ y pr´avˇe podle t´eto hodnoty p´ar˚ u. Tento postup je postupnˇe prov´adˇen pro kaˇzd´ y maj´ak instituce. Graficky je zn´azornˇen na obr´azku 5.2.
5.2.6
Od˚ uvodnˇ en´ı opr´ avnˇ en´ı aplikace
Aplikace pro spr´avn´e fungov´an´ı vyˇzaduje pˇri instalaci 14 opr´avnˇen´ı. N´asleduj´ı jednotliv´e od˚ uvodnˇen´ı, proˇc je dan´e opr´avnˇen´ı vyˇzadov´ano. • com.tagiee.permission.MAPS_RECEIVE • com.google.android.providers.gsf.permission.READ_GSERVICES toto opr´avnˇen´ı vˇcetnˇe pˇredchoz´ıho je tˇreba, aby aplikace mohla komunikovat s Google Maps Android API v2 a naopak. • android.permission.INTERNET - umoˇzn ˇuje aplikaci pˇripojit se k Internetu. To je tˇreba pro komunikaci s Tagiee serverem. • android.permission.WRITE_EXTERNAL_STORAGE - povoluje aplikaci zapisovat na extern´ı u ´loˇziˇstˇe (nejˇcastˇeji SD karta). To je potˇreba pro ukl´ad´an´ı offline obsahu. • android.permission.ACCESS_COARSE_LOCATION • android.permission.ACCESS_FINE_LOCATION - toto i pˇredchoz´ı opr´avnˇen´ı je zapotˇreb´ı pro zjiˇstˇen´ı lokalizace zaˇr´ızen´ı. • android.permission.ACCESS_WIFI_STATE - umoˇzn ˇuje pracovat s WiFi rozhran´ım, napˇr. zjiˇst’ovat informace o okoln´ıch WiFi s´ıt´ıch. • android.permission.NFC - je potˇreba pro ˇcten´ı NFC tag˚ u. 51
Mobiln´ı klient pro platformu Android
N´avrh aplikace
Obr´azek 5.2: Algoritmus hled´an´ı maj´ak˚ u • android.permission.ACCESS_NETWORK_STATE - toto povolen´ı je potˇreba pro zjiˇst’ov´an´ı dostupnosti pˇripojen´ı k Internetu pˇred zah´ajen´ım komunikace s Tagiee serverem. • android.permission.BLUETOOTH • android.permission.BLUETOOTH_ADMIN - toto i pˇredchoz´ı opr´avnˇen´ı je vyuˇz´ıv´ano pˇri zjiˇst’ov´an´ı okoln´ıch Bluetooth zaˇr´ızen´ı.
52
Mobiln´ı klient pro platformu Android
Google apis
• android.permission.READ_PHONE_STATE - je zapotˇreb´ı, aby aplikace mohla zobrazit v´ ychoz´ı dialer s telefonn´ım ˇc´ıslem instituce. • android.permission.CAMERA - umoˇzn´ı aplikaci pouˇz´ıvat fotoapar´at pˇri ˇcten´ı QR k´odu. • android.permission.WAKE_LOCK - je vyuˇzito, aby se zaˇr´ızen´ı neuspalo pˇri vyhled´av´an´ı okoln´ıch maj´ak˚ u.
5.3
Google apis
Spoleˇcnost Google nab´ız´ı pˇres 50 sv´ ych sluˇzeb, kter´e nab´ız´ı volnˇe nebo za u ´platu v´ yvoj´aˇr˚ um cel´eho svˇeta. V klientsk´e aplikaci Tagiee budou vyuˇzity 2 z nab´ızen´ ych sluˇzeb a to Google Maps Android API v2 pro zobrazov´an´ı map a YouTube Data API v3 pro zobrazen´ı streamovan´eho videa jako ˇca´st obsahu informaˇcn´ıho maj´aku. Pro vyuˇz´ıv´an´ı v´ yˇse uveden´ ych sluˇzeb je potˇreba se v˚ uˇci Google apis ovˇeˇrovat. K tomu je potˇreba si bud’ vytvoˇrit OAuth token nebo API kl´ıˇc. Pokud nechceme pˇristupovat pˇres Google apis k uˇzivatelsk´ ym dat˚ um, staˇc´ı vyuˇz´ıvat API kl´ıˇc, kter´ y slouˇz´ı pouze jako identifikace projektu v˚ uˇci Google apis.
Vytvoˇ ren´ı API kl´ıˇ ce Kritick´e pro vyuˇz´ıv´an´ı Google apis je nutnost m´ıt Google u ´ˇcet. Po pˇrihl´aˇsen´ı do Google u ´ˇctu je na str´ance https://code.google.com/apis/console/ v´ yvoj´aˇrsk´a konzole. V lev´em roletov´em menu je nutn´e si vytvoˇrit projekt. Po vytvoˇren´ı projektu je v lev´em menu poloˇzka Services, pod kterou se skr´ yvaj´ı vˇsechny sluˇzby, kter´e Google nab´ız´ı. Jejich zap´ın´an´ı / vyp´ın´an´ı je vidˇet na obr´azku 5.3.
Obr´azek 5.3: Uk´azka zapnut´ı / vypnut´ı sluˇzeb Google.
53
Mobiln´ı klient pro platformu Android
Google apis
Posledn´ım krokem ve v´ yvoj´aˇrsk´e konzoli je tˇreba vytvoˇrit jiˇz zmiˇ novan´ y API kl´ıˇc. Vyuˇz´ıv´an´ı API kl´ıˇce pro Android je moˇzn´e omezit pouze na n´azev bal´ıku aplikace a SHA-1 otisk certifik´atu v´ yvoj´aˇre. V menu API Access na obr´azku 5.4 je vidˇet API kl´ıˇc pro pˇr´ıstup Android aplikace k Google apis. Z pochopiteln´ ych d˚ uvod˚ u jsou d˚ uvˇern´e informace neˇciteln´e. V prvn´ım ˇra´dku je 39-ti m´ıstn´ y API kl´ıˇc. Jeho pouˇzit´ı bude uk´az´ano v n´asleduj´ıc´ıch sekc´ıch 5.3.1 a 5.3.2. V druh´em ˇr´adku je omezen´ı API kl´ıˇce - je zde SHA-1 otisk certifik´atu v´ yvoj´aˇre a jm´eno bal´ıku aplikace, kter´a sm´ı tento kl´ıˇc vyuˇz´ıvat pro pˇr´ıstup k Google sluˇzb´am.
Obr´azek 5.4: API kl´ıˇce pro Android aplikaci.
5.3.1
Google Maps Android API v2
Pro vyuˇz´ıv´an´ı t´eto sluˇzby v Android aplikaci je tˇreba upravit manifest aplikace a vloˇzit do nˇej v´ yˇse vytvoˇren´ y API kl´ıˇc. Ten se vkl´ad´a pˇrid´an´ım n´asleduj´ıc´ıho k´odu do sekce
: 1
< meta - data android:name = " com . google . android . maps . v2 . API_KEY " android:value = " <-- api_klic - - > " / >
D´ale je jeˇstˇe tˇreba aplikaci pˇridat pˇr´ısluˇsn´a opr´avnˇen´ı, aby mohla mapy od spoleˇcnosti Google vyuˇz´ıvat: 1 2 3 4 5 6 7 8 9
< permission android:name = " com . tagiee . permission . MAPS_RECEIVE " a n d r o i d : p r o t e c t i o n L e v e l = " signature " / > < uses - permission android:name = " com . tagiee . permission . MAPS_RECEIVE " / > < uses - permission android:name = " com . google . android . providers . gsf . permission . READ_GSERVICES " / > < uses - permission android:name = " android . permission . INTERNET " / > < uses - permission android:name = " android . permission . W R IT E _ E X TE R N A L _S T O R AG E " / > < uses - permission android:name = " android . permission . A C CE S S _ C OA R S E _ LO C A T IO N " / >
54
Mobiln´ı klient pro platformu Android
10
Google apis
< uses - permission android:name = " android . permission . AC CE SS_ FIN E_ LOC AT ION " / >
Google mapy pro Android od verze 2 vyˇzaduj´ı OpenGL ES 2, kter´e se povol´ı pˇrid´an´ım n´asleduj´ıc´ıho k´odu do manifestu aplikace. 1
< uses - feature android :glEsVe rsion = " 0 x00020000 " android:required = " true " / >
Samotn´e mapy se do aplikace daj´ı vloˇzit do View jako samostatn´e MapView ˇci jako fragment vloˇzen´ım tˇr´ıdy com.google.android.gms.maps.MapFragment nebo com.google.android.gms.maps.SupportMapFragment v pˇr´ıpadˇe, ˇze je vyuˇzita Support Library. Jak pˇrid´avat fragmenty do aplikace je vysvˇetleno v ˇc´asti 4.3 Jak jiˇz bylo zm´ınˇeno v´ yˇse, vˇsechny Google sluˇzby jsou bud’ zdarma nebo je jejich pouˇzit´ı omezeno urˇcit´ ymi limity, kter´e lze za u ´platu zvˇetˇsit. U Google map pro Android je pouˇzit´ı zcela zdarma a bez jak´ ychkoliv limit˚ u.
5.3.2
YouTube Data API v3
YouTube Data API v3 je experiment´aln´ı verze, kter´a je st´ale ve v´ yvoji3 , nicm´enˇe se pˇredpokl´ad´a jej´ı brzk´e dokonˇcen´ı a minim´aln´ı zmˇeny v API. Souˇca´st´ı je tak´e YouTube Android Player API, kter´ y nab´ız´ı v´ıce moˇznost´ı, jak vloˇzit pˇrehr´avaˇc YouTube vide´ı do aplikace. Ovˇeˇren´ı opˇet prob´ıh´a v´ yˇse vytvoˇren´ ym API kl´ıˇcem. Zde se ovˇsem API kl´ıˇc nepˇrid´av´a do manifestu aplikace ale pˇr´ımo do programov´eho k´odu. Pˇrehr´avaˇc se do aplikace d´a opˇet pˇridat v´ıce zp˚ usoby - jako View, Fragment nebo se d´a vyvolat zabudovan´a samostatn´a aplikace pro YouTube videa pomoc´ı Intentu. V klientsk´e aplikaci Tagiee je pˇrehr´avaˇc vloˇzen jako view. Nev´ yhodou je, ˇze aktivita, kter´a v sobˇe zobrazuje pˇrehr´avaˇc (nebo m´a v sobˇe fragment, kter´ y zobrazuje pˇrehr´avaˇc) mus´ı dˇedit od tˇr´ıdy YouTubeBaseActivity, coˇz nemus´ı b´ yt vˇzdy vyhovuj´ıc´ı. Dalˇs´ım poˇzadavkem, kter´ y uˇz nen´ı probl´emov´ y, je nutnost implementovat rozhran´ı YouTubePlayer.OnInitializedListener. Pouˇzit´ı je naznaˇceno na n´asleduj´ıc´ı uk´azce. 3
u ´daj z dubna 2013
55
Mobiln´ı klient pro platformu Android
1 2 3 4 5 6
Pouˇzit´ı NFC
public static final String DEVELOPER_KEY = api_klic ; // vytvoreni view , vyhledani a vlozeni com . google . android . youtube . player . YouTubePlayerView ... // druhy parametr je trida implementujici O nI ni t ia l iz ed L is te n er rozhrani youTubeView . initialize ( DEVELOPER_KEY , this ) ;
Rozhran´ı OnInitializedListener vyˇzaduje implementaci n´asleduj´ıc´ıch dvou metod. Kaˇzd´e YouTube video je urˇceno sv´ ym jedineˇcn´ ym identifik´atorem, kter´ y se vyuˇz´ıv´a pr´avˇe pˇri inicializaci. 1 2 3 4 5 6 7 8 9 10 11
@Override public void o n I n i t i a l i z a t i o n F a i l u r e ( Provider arg0 , Y o u T u b e I n i t i a l i z a t i o n R e s u l t arg1 ) { // vyresit neuspesnou inicializaci } @Override public void o n I n i t i a l i z a t i o n S u c c e s s ( YouTubePlayer . Provider provider , YouTubePlayer player , boolean wasRestored ) { if (! wasRestored ) { player . cueVideo ( id_videa ) ; } }
Oproti Google map´am pro Android nen´ı pouˇzit´ı YouTube Data API v3 zcela neomezen´e. V´ yvoj´aˇr m´a v z´akladu k dispozici 5 000 000 jednotek na den, kde si m˚ uˇze nastavit jak velikou ˇc´ast pˇriˇrad´ı jednomu uˇzivateli. V z´akladu jsou jednotky rozdˇeleny po 30 000 jednotek / uˇzivatel, kde 1 jednotka odpov´ıd´a 1 vteˇrinˇe videa.
5.4
Pouˇ zit´ı NFC
Prvn´ım pˇredpokladem pro vyuˇzit´ı NFC je zaˇr´ızen´ı, kter´e tuto technologii podporuje. Druh´ ym pˇredpokladem je pˇr´ısluˇsn´e opr´avnˇen´ı, aby zaˇr´ızen´ı mohlo NFC vyuˇz´ıvat. 1
< uses - permission android : name = " android . permission . NFC " / >
56
Mobiln´ı klient pro platformu Android
Pouˇzit´ı NFC
Obr´azek 5.5: Rozhodov´an´ı Tag Dispatch Systemu. [and(d)]
5.4.1
The Tag Dispatch System
V n´avrhu aplikace je d´ano, ˇze aplikace bude pouze data ˇc´ıst a to konkr´etnˇe ve form´atu NDEF. Jak na NFC tagy zapisovat je uk´az´ano v sekci 5.8. Komunikaci s ostatn´ımi NFC zaˇr´ızen´ımi (at’ uˇz pasivn´ımi nebo aktivn´ımi) m´a na starosti tzv. The Tag Dispatch System, d´ale jen Dispatch System. Ten postupnˇe hled´a zaregistrovan´e aktivity od nejspecifiˇctˇejˇs´ıho“ filtru aˇz po ten ” nejv´ıc obecn´ y. Cel´e jeho rozhodovac´ı sch´ema je zn´azornˇeno na obr´azku 5.5. V pˇr´ıpadˇe, ˇze je zaˇr´ızen´ı v bl´ızkosti NFC tagu, kter´ y obsahuje NDEF obsah, hled´a Dispatch System aktivity, kter´e jsou v syst´emu zaregistrov´any na filtr NDEF_DISCOVERED. V pˇr´ıpadˇe ne´ uspˇechu zkouˇs´ı vyhledat aktivity, kter´e registruj´ı filtr TECH_DISCOVERED a jim Intent doruˇcit. Pokud ani zde nen´ı nalezena aktivita, kter´a by dok´azala Intent pˇrijmout a obslouˇzit, vyhled´av´a vˇsechny aktivity, kter´e pˇrij´ımaj´ı Intenty s filtrem TAG_DISCOVERED. Pˇri jak´emkoliv u ´spˇechu bˇehem hled´an´ı aktivity schopn´e obslouˇzit Intent, je dalˇs´ı hled´an´ı zastaveno a je j´ı doruˇcen. V pˇr´ıpadˇe, ˇze takov´ ych aktivit je v syst´emu v´ıce, je zvolena bud’ v´ ychoz´ı nebo je uˇzivateli d´ano na v´ ybˇer, aby zvolil ji on. V opaˇcn´em pˇr´ıpadˇe, kdy v syst´emu neexistuje jedin´a aktivita schopn´a obslouˇzit pˇr´ıchoz´ı Intent, se neprovede ˇz´adn´a akce a Intent bude ignorov´an. Obecnˇe lze aplikaci pro komunikaci s NFC zaregistrovat v syst´emu dvˇema zp˚ usoby. Ten prvn´ı je definic´ı intent-filter u pro danou aktivitu v manifestu aplikace a je vidˇet na n´asleduj´ıc´ım v´ ypisu k´odu. Jedn´a se nejjednoduˇsˇs´ı 57
Mobiln´ı klient pro platformu Android
Pouˇzit´ı NFC
definici. Filtru lze samozˇrejmˇe nastavit technologie tag˚ u, na kter´e m´a reagovat apod. 1 2 3 4
< intent - filter > < action android : name = " android . nfc . action . NDEF_DISCOVERED " / > < data android : mimeType = " text / plain " / > intent - filter >
5.4.2
Foreground Dispatch System
Druh´ ym zp˚ usobem je tzv. Foreground Dispatch System. Jedn´a se v podstatˇe o dynamickou registraci aktivity pro komunikaci s NFC tagem, kter´a m´a z´aroveˇ n nejvyˇsˇs´ı prioritu. Tento syst´em m˚ uˇze pouˇz´ıvat pouze aktivita, kter´a je v danou chv´ıli aktivn´ı, tud´ıˇz jej´ı pˇrednost pˇred ostatn´ımi aktivitami je opravdu absolutn´ı. Pouˇzit´ı je r´amcovˇe zn´azornˇeno v n´ıˇze uveden´em v´ ypisu k´odu. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
// ziskani objektu pro praci s nfc NfcAdapter mAdapter = NfcAdapter . getDefaultAdapter ( this ) ; // pripaveny intent k naplneni PendingIntent mPendingIntent = PendingIntent . getActivity ( this , 0 , new Intent ( this , getClass () ) . addFlags ( Intent . F L A G _ A C T I V I T Y _ S I N G L E _ T O P ) , 0) ; // datovy filtr urcujici na co vse ma aktivita reagovat IntentFilter ndef = new IntentFilter ( NfcAdapter . A C TI O N _ N DE F _ D I SC O V E RE D ) ; try { ndef . addDataType ( " */* " ) ; } catch ( M a l f o r m e d M i m e T y p e E x c e p t i o n e ) { Log . e ( Consts . LOG_TAG , e . getMessage () ) ; } mFilters = new IntentFilter [] { ndef }; // filtr technologii na NfcA ( odpovida Mifare Classic 1 k ) mTechLists = new String [][] { new String [] { NfcA . class . getName () } };
Registrace resp. odregistrace by se mˇela prov´adˇet v pˇr´ısluˇsn´ ych metod´ach ˇzivotn´ıho cyklu aktivity - tedy napˇr. onResume() resp. onPause(). Prvn´ı parametr metody je odkaz na aktivitu, kter´a m´a z´ajem o NFC komunikaci. 1 2
// registrace mAdapter . e n a b l e F o r e g r o u n d D i s p a t c h ( this , mPendingIntent , mFilters , mTechLists ) ;
58
Mobiln´ı klient pro platformu Android
3 4
Implementace QR ˇcteˇcky
// odregistrace mAdapter . d i s a b l e F o r e g r o u n d D i s p a t c h ( this ) ;
Pokud je aktivita u ´spˇeˇsnˇe zaregistrovan´a v Foreground Dispatch Systemu a spr´avn´ y NFC tag je k zaˇr´ızen´ı pˇribl´ıˇzen, napln´ı se definovan´ y mPendingIntent a vyvol´a se metoda OnNewIntent, kterou je tˇreba v aktivitˇe pˇrekr´ yt. 1 2 3 4 5 6 7 8 9
@Override protected void onNewIntent ( Intent intent ) { super . onNewIntent ( intent ) ; // takto lze z intentu dostat data z NFC tagu Tag tag = intent . getParcelableExtra ( NfcAdapter . EXTRA_TAG ) ; // libovolne zpracovani dat ... return ; }
5.4.3
NDEF form´ at
Pokud je v NFC tagu uloˇzena zpr´ava ve form´atu NDEF, lze jej´ı obsah definovat 3 bity oznaˇcen´ ymi jako TNF. Ze vˇsech podporovan´ ych TNF je pro klientskou aplikaci nejzaj´ımavˇejˇs´ı hodnota TNF_WELL_KNOWN, kter´a ˇr´ık´a, ˇze obsah NFC tagu je bud’ URI nebo MIME typ, kter´ y je jeˇstˇe d´ale urˇcen tzv. RTD. V tabulce 5.1 jsou uvedeny vybran´e RTD typy, z nichˇz nˇekter´e jsou pouˇzity v klientsk´e aplikaci. Kompletn´ı pˇrehled TNF a RTD hodnot je dostupn´ y na str´ance http://developer.android.com/guide/topics/ connectivity/nfc/nfc.html. RTD RTD_SMART_POSTER RTD_TEXT RTD_URI
mapov´ an´ı URI podle parsov´an´ı obsahu tagu MIME typ text/plain URI podle obsahu tagu
Tabulka 5.1: Pˇrehled nˇekter´ ych podporovan´ ych RTD
5.5
Implementace QR ˇ cteˇ cky
Jelikoˇz je mezi zvolen´ ymi technologiemi QR k´od, bylo tˇreba do klientsk´e aplikace implementovat ˇcteˇcku, kter´a dok´aˇze QR k´ody dek´odovat. V sekci 3.3 59
Mobiln´ı klient pro platformu Android
Datab´aze
jsou pops´any vybran´e knihovny, kter´e maj´ı poˇzadovanou funkˇcnost. Pro implementaci byla vybr´ana knihovna Zbar z d˚ uvodu jej´ı snadn´e implementace a velmi rychl´emu dek´odov´an´ı QR k´od˚ u. Knihovnu je tˇreba zahrnout do projektu aplikace a dek´odov´an´ı QR obrazce lze vyvolat pouh´ ym Intentem. Nen´ı tˇreba, aby mˇel uˇzivatel v zaˇr´ızen´ı nainstalovanou ˇza´dnou aplikaci 3. strany na skenov´an´ı QR k´od˚ u. 1 2 3 4 5
if ( isCameraAvailable () ) { // pokud je kamera dostupna , lze skenovat QR kod Intent intent = new Intent ( getActivity () , ZBar Scanner Activity . class ) ; s t ar t A c t iv i t y F or R e s ul t ( intent , Z BAR _SC AN NER _R EQU ES T ) ; }
Jelikoˇz byla aktivita vyvol´ana metodou startActivityForResult(...), tak po u ´spˇeˇsn´em skenov´an´ı QR k´odu se vr´at´ı zpˇet do volaj´ıc´ı aktivity s v´ ysledkem obsaˇzen´ ym v Intentu. 1 2 3 4 5 6 7 8 9 10 11 12 13
@Override public void onActivityResult ( int requestCode , int resultCode , Intent data ) { switch ( requestCode ) { case ZB AR _SC AN NER _R EQU EST : case Z B A R _ Q R _ S C A N N E R _ R E Q U E S T : // vysledek QR ctecky if ( resultCode == Activity . RESULT_OK ) { // dekodovany obsah QR kodu String qrMessage = data . getStringExtra ( ZBarConstants . SCAN_RESULT ) ; // libovolne zpracovani ... }
5.6
Datab´ aze
V aplikaci byla pouˇzita datab´aze pro persistenci dat. Na obr´azku 5.6 je vidˇet datov´ y model datab´aze. Model nen´ı nijak zvl´aˇst’ komplexn´ı, nicm´enˇe je pro klientskou aplikaci vyhovuj´ıc´ı. Sloupce _id jsou vnitˇrn´ı identifik´atory SQLite datab´aze na platformˇe Android. Pˇr´ıpadn´e sloupce id jsou identifik´atory ze syst´emu Tagiee. Tabulky found_beacon a resource jsou propojeny s tabulkou institu60
Mobiln´ı klient pro platformu Android
Verze pro tablety
tion prostˇrednictv´ım ciz´ıho kl´ıˇce. Tabulka resource udrˇzuje vˇsechny informace o multimedi´aln´ıch souborech dan´e instituce. Tabulka found_beacon v sobˇe udrˇzuje jiˇz navˇst´ıven´e maj´aky v r´amci dan´e instituce. Tabulka stats_to_be_send je vyuˇzita pouze pro ukl´ad´an´ı statistick´ ych dat pro server, kter´a nemohla b´ yt odesl´ana z d˚ uvodu nedostupnosti internetov´eho pˇripojen´ı.
Obr´azek 5.6: Datov´ y model datab´aze
5.7
Verze pro tablety
V r´amci Oborov´eho projektu byla vytvoˇrena verze klientsk´e aplikace Tagiee pro zaˇr´ızen´ı s vˇetˇs´ım displejem tzn. tablety apod. Stavebn´ı prvky aplikace - jiˇz zm´ınˇen´e Fragmenty - jsou pro tyto u ´ˇcely ide´aln´ım prostˇredkem. V pˇr´ıpadˇe, ˇze jsou navrˇzen´e a vytvoˇren´e jako znovupouˇziteln´e, lze je poskl´adat do nov´eho rozloˇzen´ı, kter´e v´ıce vyhovuje vˇetˇs´ım zaˇr´ızen´ım pˇri zachov´an´ı stejn´e funkˇcnosti. Dalˇs´ım prostˇredkem jsou konfiguraˇcn´ı kvalifik´atory, o kter´ ych je uvedeno v´ıce informac´ı v n´asleduj´ıc´ı ˇc´asti.
61
Mobiln´ı klient pro platformu Android
5.7.1
Verze pro tablety
Podpora r˚ uzn´ ych obrazovek
Aˇckoliv platforma Android nab´ız´ı nˇekter´e prvky UI, kter´e se um´ı automaticky pˇrizp˚ usobit zmˇen´am obrazovky, neposkytuj´ı tyto ˇcasto nejlepˇs´ı rozhran´ı pro kaˇzdou velikost obrazovky. Z tohoto d˚ uvodu se vyuˇz´ıvaj´ı jiˇz zm´ınˇen´e konfiguraˇcn´ı kvalifik´atory, kter´e umoˇzn ˇuj´ı automaticky pˇri bˇehu aplikace zvolit pˇr´ısluˇsn´e zdroje pro aktu´aln´ı konfiguraci. Pro definici rozloˇzen´ı prvk˚ u UI se pouˇz´ıvaj´ı XML soubory - tzn. layout. Standardn´ı um´ıstˇen´ı soubor˚ u je v adres´aˇri /res/layout/, kde jsou uloˇzeny vˇsechny obecn´e XML konfiguraˇcn´ı soubory. Konfiguraˇcn´ı soubory pro konkr´etn´ı konfiguraci se umist’uj´ı do adres´aˇr˚ u, kter´e maj´ı ve sv´em n´azvu konfiguraˇcn´ı kvalifik´atory oddˇelen´e pomlˇckou - tzn. pro zaˇr´ızen´ı s vˇetˇs´ı obrazovkou4 syst´em hled´a konfiguraˇcn´ı XML soubory napˇr´ıklad na cestˇe /res/layoutlarge/. Tento kvalifik´ator pro velkou obrazovku je nicm´enˇe pˇr´ıliˇs obecn´ y a nedostaˇcuj´ıc´ı. Proto od verze 3.2 nab´ız´ı Android mnohem jemnˇejˇs´ı kvalifik´atory (viz ˇca´st 4.1.4), nicm´enˇe pro zaˇr´ızen´ı s verz´ı syst´emu niˇzˇs´ı neˇz 3.2 jsou tyto kvalifik´atory nezn´am´e a tak pro zpˇetnou kompatibilitu by se musely udrˇzovat XML soubory s rozloˇzen´ım UI prvk˚ u jak pro obecn´e, tak pro jemn´e kvalifik´atory. Z toho d˚ uvodu byly zavedeny aliasy.
Pˇ r´ıklad pouˇ zit´ı Klientsk´a aplikace pouˇz´ıv´a standardnˇe jedno-panelov´e rozhran´ı, pˇriˇcemˇz pro tablety je dostatek prostoru pro pouˇzit´ı dvou-panelov´eho rozhran´ı. S vyuˇzit´ım alias˚ u staˇc´ı vytvoˇrit nov´ y XML soubor definuj´ıc´ı rozloˇzen´ı UI prvk˚ u pro vˇetˇs´ı zaˇr´ızen´ı, kter´ y se uloˇz´ı na standardn´ı um´ıstˇen´ı (/res/layout/). Situace je tedy n´asleduj´ıc´ı: • fragment_found_beacons.xml pro jedno-panelov´e rozloˇzen´ı • fragment_found_beacons_tablet.xml pro dvou-panelov´e rozloˇzen´ı Dalˇs´ım krokem je vytvoˇren´ı alias˚ u. Ty mohou b´ yt v libovolnˇe pojmenovan´em XML souboru, kter´ y mus´ı b´ yt uloˇzen ve spr´avn´em adres´aˇri dle konfiguraˇcn´ıch kvalifik´ator˚ u. Je tedy poˇr´ad nutn´e vytvoˇrit dva XML soubory, 4
7”a v´ıce
62
Mobiln´ı klient pro platformu Android
Verze pro tablety
jak pro obecn´ y kvalifik´ator (large), tak pro nov´ y jemnˇejˇs´ı (napˇr. sw600dp), avˇsak staˇc´ı udrˇzovat pouze jeden layout XML soubor pro vˇetˇs´ı zaˇr´ızen´ı, coˇz je pro dalˇs´ı v´ yvoj v´ yhodnˇejˇs´ı. N´asleduj´ıc´ı uk´azka k´odu je z XML souboru uloˇzen´eho v adres´aˇri /res/layout-large/ resp. /res/layout-sw600dp. Je zde vidˇet mapov´an´ı souboru fragment_found_beacons_tablet na fragment_found_beacons, pˇriˇcemˇz obsah obou soubor˚ u je odliˇsn´ y. 1 2 3 4
xml version = " 1.0 " encoding = " utf -8 " ? > < resources > < item name = " f r a g m en t _ f o un d _ b ea c o n s " type = " layout " > @layout / f r a g m e n t _ f o u n d _ b e a c o n s _ t a b l e t item > resources >
V k´odu aplikace pot´e staˇc´ı pˇri vytv´aˇren´ı UI otestovat, kter´e UI prvky jsou dostupn´e a zjistit tak aktu´aln´ı konfiguraci zaˇr´ızen´ı. V n´asleduj´ıc´ı uk´azce k´odu je vidˇet vytvoˇren´ı uˇzivatelsk´eho rozhran´ı ze zdroje pojmenovan´eho fragment_found_beacons, coˇz bude syst´em d´ıky vytvoˇren´ ym alias˚ um naˇc´ıtat z odliˇsn´ ych XML soubor˚ u dle aktu´aln´ı konfigurace. 1 2 3 4
@Override public View onCreateView ( LayoutInflater inflater , ViewGroup container , Bundle savedInstanceState ) { // vytvoreni View ze zdroje , ktery je definovan aliasem View root = inflater . inflate ( R . layout . fragment_found_beacons , container , false ) ;
5 6 7
// obsahuje layout pro telefony mListView = ( ListView ) root . findViewById ( R . id . fo un dBe ac ons Lis tV iew ) ; // obsahuje layout pro tablety mGridView = ( GridView ) root . findViewById ( R . id . fo un dBe ac ons Gri dV iew ) ;
8 9 10 11 12 13 14 15 16 17 18
if ( mListView != null ) { // jedno - panelovy layout } if ( mGridView != null ) { // dvou - panelovy layout } return root ; }
Na obr´azku 5.7 je zobrazen pˇr´ıklad r˚ uzn´eho rozloˇzen´ı UI v z´avislosti, na konfiguraci zaˇr´ızen´ı. Je patrn´e, ˇze pro tablety je pouˇzito dvou-panelov´e rozhran´ı, kde jsou nav´ıc jednotliv´a hodnocen´ı zobrazena ve 3 sloupc´ıch. Pro menˇs´ı zaˇr´ızen´ı jsou jednotliv´a hodnocen´ı zobrazena pˇres celou ˇs´ıˇrku displeje v jednom sloupci a cel´a navigace se zmˇenila z vertik´aln´ı na horizont´aln´ı. Je zde 63
Mobiln´ı klient pro platformu Android
(a) Zobrazen´ı hodnocen´ı dan´e instituce na tabletu.
Tagiee Admin
(b) Zobrazen´ı hodnocen´ı dan´e instituce na telefonu.
Obr´azek 5.7: Uk´azka aplikace pro r˚ uzn´e konfigurace zaˇr´ızen´ı tak´e vidˇet, ˇze si aplikace porad´ı s r˚ uznˇe nastaven´ ym jazykov´ ym prostˇredn´ım v zaˇr´ızen´ı. Na tabletu je nastaveno kompletnˇe ˇcesk´e prostˇred´ı a na telefonu je anglick´e prostˇred´ı ovˇsem s ˇcesk´ ym form´atem ˇcasu a data.
5.8
Tagiee Admin
V r´amci pˇredmˇetu KIV/MKZ byla vytvoˇrena administraˇcn´ı aplikace pro ´ celem aplikace je d´at spr´avci instituc´ı moserverovou ˇc´ast syst´emu Tagiee. Uˇ biln´ı n´astroj pro zobrazen´ı rychl´eho pˇrehledu statistik, hodnocen´ı, pˇrid´av´an´ı nov´ ych lokac´ı a pˇr´ıpravu NFC tag˚ u pro jednotliv´e maj´aky.
5.8.1
Funkce aplikace
Administr´atorsk´a aplikace byla navrˇzena, aby poskytovala n´asleduj´ıc´ı funkˇcnost:
Pˇ rihl´ aˇ sen´ı Kaˇzd´ y administr´ator m´a v syst´emu Tagiee svoje uˇzivatelsk´e jm´eno a heslo, pod kter´ ym m˚ uˇze spravovat j´ım vytvoˇren´e instituce. Zad´an´ım sv´eho jm´ena 64
Mobiln´ı klient pro platformu Android
Tagiee Admin
a hesla, kter´e je shodn´e s u ´daji ve webov´e administraci, se administr´ator pˇrihl´as´ı a jsou mu k dispozici n´asleduj´ıc´ı funkce pro jeho instituce. N´asleduj´ıc´ı funkce jsou k dispozici pouze po u ´spˇeˇsn´em pˇrihl´aˇsen´ı administr´atora
Pˇ rehled instituc´ı Aplikace nab´ıdne administr´atorovi pˇrehled vˇsech jeho instituc´ı, jejich hodnocen´ı a struˇcn´e statistiky. Jedn´a se o statistiky typu celkov´ y poˇcet n´avˇstˇevn´ık˚ u, poˇcet n´avˇstˇevn´ık˚ u za mˇes´ıc. Dalˇs´ım statistick´ ym u ´dajem bude pomˇer platforem zaˇr´ızen´ı, kter´e danou instituci navˇst´ıvila.
Pˇ rehled hodnocen´ı Aplikace umoˇzn´ı administr´atorovi zobrazit vˇsechna uloˇzen´a hodnocen´ı pro konkr´etn´ı instituci seˇrazen´a sestupnˇe podle ˇcasu pˇrid´an´ı.
Zobrazen´ı maj´ ak˚ u a statistik Administraˇcn´ı klient umoˇzn´ı uˇzivateli zobrazit seznam vˇsech aktivn´ıch i neaktivn´ıch maj´ak˚ u v dan´e instituci. U kaˇzd´eho maj´aku budou statistick´e u ´daje o tom, kolikr´at byl maj´ak objeven a jakou metodou / technologi´ı byl objeven. Posledn´ı u ´daj bude zobrazen v podobˇe kol´aˇcov´eho grafu.
Pˇ r´ıprava NFC tagu Aplikace d´ale umoˇzn´ı pro vybran´ y maj´ak vytvoˇrit NFC tag - resp. zapsat na nˇej potˇrebn´e u ´daje. Uˇzivatel bude m´ıt na v´ ybˇer, zda chce NFC tag trvale zamknout proti pˇreps´an´ı a zda chce pˇridat do tagu voliteln´ yu ´daj - struˇcn´ y popis maj´aku - pro univerz´aln´ı NFC ˇcteˇcky.
Uloˇ zen´ı lokace Klient umoˇzn´ı uˇzivateli pˇrid´avat k instituci nov´e lokace, kter´e jdou pˇrid´avat jednotliv´ ym maj´ak˚ um. Lokace je urˇcena jm´enem a libovolnou kombinac´ı 65
Mobiln´ı klient pro platformu Android
Tagiee Admin
aktu´aln´ı polohy, seznamem okoln´ıch vys´ılaj´ıc´ıch WiFi zaˇr´ızen´ı seˇrazen´ ych sestupnˇe dle s´ıly sign´alu a seznamem okoln´ıch vys´ılaj´ıc´ıch Bluetooth zaˇr´ızen´ı.
5.8.2
Pˇ r´ıprava NFC tagu
Pˇredpoklady a z´aklady pro komunikaci s ostatn´ımi NFC zaˇr´ızen´ımi jsou uvedeny v ˇca´sti 5.4. V t´eto ˇc´asti bude pouze struˇcnˇe pops´an zp˚ usob z´apisu NDEF zpr´av na NFC tagy. V praxi mohou pˇri z´apisu NDEF zpr´avy nastat 2 situace. Prvn´ı situace je bezprobl´emov´a a na NFC tag lze zpr´avu zapsat. V n´asleduj´ıc´ım k´odu je vidˇet z´apis kr´atk´eho identifik´atoru ve form´atu SMART POSTER a obyˇcejn´eho textu. U obyˇcejn´eho textu je tˇreba urˇcit, jak´ ym jazykem je naps´an. K´ody jazyk˚ u jsou urˇceny podle organizace IANA. Podle specifikace NFC f´ora je kaˇzd´ y NDEF Well Known Type textov´ y z´aznam form´atov´an n´asledovnˇe. Po prvn´ım bajtu, jehoˇz sloˇzen´ı je vidˇet v tabulce 5.2, n´asleduje IANA k´od jazyka z´aznamu. Poˇcet byt˚ u k´odu jazyka je urˇcen pr´avˇe v prvn´ım bajtu z´aznamu. Zbytek je zpr´ava samotn´a. bity 7 6 0..5
v´ yznam 0: UTF-8, 1: UTF-16 mus´ı b´ yt nula d´elka IANA jazykov´eho k´odu
Tabulka 5.2: Uk´azka sloˇzen´ı prvn´ıho bajtu textov´eho NFC RTD z´aznamu.
1 2 3 4 5 6 7 8 9 10 11 12 13
// nejdriv je treba dostat byty z promennych ubid a desc byte [] payload = ubid . getBytes ( Charset . forName ( " UTF -8 " ) ) ; byte [] payloadDescPrep = desc . getBytes ( Charset . forName ( " UTF -8 ")); byte [] finalPayload = new byte [ payloadDescPrep . length + 3]; // LSB 0100000 znamena ze IANA kod je 2 byty dlouhy a zprava je v UTF -8 finalPayload [0] = 0 x02 ; // zprava bude v ceskem jazyce , kteremu odpovida kod cs finalPayload [1] = 0 x63 ; // c finalPayload [2] = 0 x73 ; // s System . arraycopy ( payloadDescPrep , 0 , finalPayload , 3 , payloadDescPrep . length ) ; // pripraveni NDEF zaznamu na zapis
66
Mobiln´ı klient pro platformu Android
14 15
Uk´azky aplikac´ı
NdefRecord record = new NdefRecord ( NdefRecord . TNF_WELL_KNOWN , NdefRecord . RTD_SMART_POSTER , null , payload ) ; NdefRecord recordDesc = new NdefRecord ( NdefRecord . TNF_WELL_KNOWN , NdefRecord . RTD_TEXT , null , finalPayload ) ;
V druh´em pˇr´ıpadˇe se m˚ uˇze st´at, ˇze na tag nep˚ ujde zapsat. Jednou z pˇr´ıˇcin m˚ uˇze b´ yt skuteˇcnost, ˇze tag nen´ı na z´apis NDEF zpr´av pˇripraven. To tag d´av´a na vˇedom´ı t´ım, ˇze podporuje technologii NDEFFormatable. Pak lze takov´ y tag naform´atovat a NDEF zpr´avu zapsat. Pokud na tag nelze NDEF zpr´avu zapsat ani nen´ı NDEFFormatable, je pro tyto u ´ˇcely tag zpravidla nepouˇziteln´ y.
5.9
Uk´ azky aplikac´ı
V t´eto kapitole jsou nasn´ıman´e obrazovky pˇri pouˇz´ıv´an´ı jak klientsk´e aplikace Tagiee, tak administr´atorsk´e aplikace Tagiee Admin. Uk´azka aplikace na tabletu je na obr´azku 5.7. Pro uk´azku aplikace byla pouˇzita zaˇr´ızen´ı Samsung Galaxy Nexus a Asus Transformer TF101.
67
Mobiln´ı klient pro platformu Android
5.9.1
Uk´azky aplikac´ı
Tagiee
(a) Seznam vˇsech instituc´ı v okol´ı
(b) Pˇrihl´aˇsen´ı k instituci z historie
(c) Z´akladn´ı informace o instituci
(d) Moˇznost vyhled´ av´ an´ı maj´ ak˚ u
(e) Seznam navˇst´ıven´ ych maj´ak˚ u
(f) Zobrazen´ı obsahu konkr´etn´ıho maj´aku
68
jiˇz
Mobiln´ı klient pro platformu Android
5.9.2
Uk´azky aplikac´ı
Tagiee Admin
(a) Pˇrihlaˇsovac´ı obrazovka
(b) Seznam instituc´ı pˇrihl´ aˇsen´eho spr´avce vˇcetnˇe z´ akladn´ıch statistik
(d) Pˇr´ıprava obsahu, kter´ y bude zaps´ an na NFC tag
(c) Seznam vˇsech maj´aku konkr´etn´ı instituce vˇcetnˇe statistik
(e) Rozhran´ı pro uloˇzen´ı lokace do syst´emu. Ta m˚ uˇze b´ yt pot´e pˇriˇrazena k maj´aku v administraci.
69
6 Ovˇeˇren´ı funkˇcnosti 6.1
ˇ Bory Modelov´ a situace - DOD are´ al ZCU
ˇ Bory pˇri Dni otevˇren´ Syst´em Tagiee by se ide´alnˇe dal pouˇz´ıt v are´alu ZCU ych dveˇr´ı. ˇ pˇrich´az´ı zejm´ena velk´e Den otevˇren´ ych dveˇr´ı je akce, pˇri n´ıˇz do are´alu ZCU mnoˇzstv´ı z´ajemc˚ u o budouc´ı studium na Z´apadoˇcesk´e univerzitˇe v Plzni. Ti si proch´azej´ı vˇsechny budovy, ve kter´ ych jsou pro nˇe pˇripraveny r˚ uzn´e uk´azky a soutˇeˇze, zjiˇst’uj´ı informace o pr˚ ubˇehu studia apod. K tomu je tˇreba, aby byly na vˇsech stanoviˇst´ıch“ informaˇcn´ı let´aky a person´al, kter´ y by podal ” dodateˇcn´e informace. S vyuˇzit´ım syst´emu Tagiee bude kaˇzd´a budova v are´alu zaveden´a v syst´emu, tud´ıˇz n´avˇstˇevn´ıci budou na mapˇe vidˇet popis a polohu jednotliv´ ych budov. Kaˇzd´e patro v kaˇzd´e budovˇe bude m´ıt u vstupu nalepen´ y QR k´od identifikuj´ıc´ı jednotliv´e katedry s´ıdl´ıc´ı na patˇre. U vˇsech v´ yznamnˇejˇs´ıch m´ıstnost´ı (laboratoˇre atd.) budou tak´e u dveˇr´ı QR k´ody pˇr´ıpadnˇe doplnˇen´e o NFC tagy. D´ale lze vyuˇz´ıt st´avaj´ıc´ı infrastrukturu WiFi s´ıtˇe pro urˇcen´ı pˇribliˇzn´e polohy uvnitˇr budovy a nab´ıdnout n´avˇstˇevn´ıkovi nejbliˇzˇs´ı informaˇcn´ı maj´aky.
6.2
ˇ Bory Ovˇ eˇ ren´ı funkˇ cnosti - Are´ al ZCU
Pro ovˇeˇren´ı funkˇcnosti klientsk´e aplikace a cel´eho syst´emu byla vytvoˇrena instituce Z´apadoˇcesk´a univerzita, pro kterou byla vytvoˇrena sada informaˇcn´ıch maj´ak˚ u. Maj´aky jsou vytvoˇreny pro jednotliv´e budovy, jak je vidˇet na obr´azku 6.2. D´ale jsou vytvoˇreny informaˇcn´ı maj´aky pro Katedru informatiky a v´ ypoˇcetn´ı techniky ve 4. patˇre budovy FAV, kter´e jsou zn´azornˇeny na zjednoduˇsen´em pl´anku na obr´azku 6.1.
Seznam venkovn´ıch maj´ ak˚ u • Fakulta aplikovan´ ych vˇed • Fakulta elektrotechnick´a 70
Ovˇeˇren´ı funkˇcnosti
ˇ Bory Ovˇeˇren´ı funkˇcnosti - Are´al ZCU
Obr´azek 6.1: Mapa 4. patra budovy FAV.
ˇ Bory. Obr´azek 6.2: Venkovn´ı mapa are´alu ZCU 71
Ovˇeˇren´ı funkˇcnosti
ˇ Bory Ovˇeˇren´ı funkˇcnosti - Are´al ZCU
• Knihovna Bory • Katedra tˇelesn´e v´ ychovy a sportu ˇ Bory • Menza ZCU
Seznam vnitˇ rn´ıch maj´ ak˚ u 1. Uˇcebna poˇc´ıtaˇcov´e grafiky 2. Uˇcebna poˇc´ıtaˇcov´ ych s´ıt´ı 3. Kancel´aˇr Doc. Ing. Pˇremysl Brada, MSc. PhD. 4. EEG ERP uˇcebna 5. Katedra informatiky a v´ ypoˇcetn´ı techniky Speci´aln´ım maj´akem, kter´ y nen´ı na map´ach zn´azornˇen, je Laboratoˇr digit´aln´ı fabriky, kter´a je um´ıstˇena na stejn´e pozici jako maj´ak ˇc´ıslo 1, ovˇsem o patro n´ıˇze. Vˇsechny vnitˇrn´ı maj´aky jsou definov´any WiFi sign´aly s´ıtˇe eduroam a zcumobile. Jedin´ y maj´ak ˇc´ıslo 3 je urˇcen i Bluetooth sign´alem. Venkovn´ı maj´aky jsou urˇceny pouze svou geografickou polohou, kromˇe maj´aku budovy, kde s´ıdl´ı Katedra tˇelesn´e v´ychovy a sportu 1 . Ten obsahuje krom geografick´e polohy i seznam sign´al˚ u WiFi.
6.2.1
V´ ysledky ovˇ eˇ ren´ı
Pro ovˇeˇren´ı spr´avn´e funkˇcnosti klientsk´e aplikace byla pouˇzita n´asleduj´ıc´ı zaˇr´ızen´ı: • Samsung Galaxy Nexus - smartphone, 4,65”, Android 4.2.2, 1,2 GHz dual-core Cortex-A9, 1 GB RAM • Sony Ericsson Xperia Neo V - smartphone, 3,7”, Android 4.0.3, 1 GHz Snapdragon MSM8255, 512 MB RAM 1
na obr´ azku 6.2 se jedn´ a o maj´ ak vpravo dole
72
Ovˇeˇren´ı funkˇcnosti
ˇ Bory Ovˇeˇren´ı funkˇcnosti - Are´al ZCU
• Samsung Google Nexus S - smartphone, 4”, Android 4.1.2, 1 GHz Cortex-A8, 512 MB RAM • ASUS Eee Pad Transformer TF101 - tablet, 10,1”, Android 4.0.3, R Tegra2TM , 1 GB RAM NVIDIA Na obr´azc´ıch 6.1 a 6.2 jsou kromˇe maj´ak˚ u vyznaˇceny jeˇstˇe pozice, kde prob´ıhalo zjiˇst’ov´an´ı polohy a dostupn´ ych maj´ak˚ u v okol´ı. Tyto m´ısta jsou oznaˇceny p´ısmeny A - D. Na obr´azku 6.3 jsou uk´az´any v´ ysledky nalezen´ ych maj´ak˚ u pˇri pr˚ uzkumu jak uvnitˇr budovy, tak venku v are´alu univerzity. V ˇca´sti (c) a (d) jsou v´ ysledky z t´ehoˇz m´ısta, avˇsak v´ ysledky nejsou zcela shodn´e. V ˇca´sti (c) je nav´ıc Laboratoˇr digit´aln´ı fabriky, kter´a je ovˇsem o patro n´ıˇze. D´ıky tomu, ˇze WiFi sign´al projde skrz podlahu, mohou b´ yt WiFi otisky dvou maj´ak˚ u, kter´e spolu soused´ı (ve smyslu pater), velmi podobn´e a m˚ uˇze tak doj´ıt k takov´eto chybn´e identifikaci. Pro tento pˇr´ıpad je vhodnˇejˇs´ı vyuˇz´ıt technologii Bluetooth pro identifikaci maj´ak˚ u, ˇci vhodnˇe omezit s´ılu vys´ılan´eho WiFi sign´alu, aby neproˇsel skrz podlahu. Dalˇs´ı nepˇresn´ y v´ ysledek je vidˇet na obr´azku v ˇc´asti (e), kde je venku detekov´an maj´ak Katedry tˇelesn´e v´ychovy a sportu, aˇckoliv je od nˇej uˇzivatel dostateˇcnˇe vzd´alen2 . Jedn´a se o hraniˇcn´ı pozici, pokud se vzd´alenost zvˇetˇs´ı o dalˇs´ıch p´ar metr˚ u, maj´ak jiˇz nen´ı identifikov´an. Tato nepˇresnost je zp˚ usobena jiˇz zm´ınˇen´ ym faktem, ˇze tento jedin´ y maj´ak je moˇzn´e identifikovat i podle WiFi otisku. Ve venkovn´ıch prostor´ach, kde ˇs´ıˇren´ı WiFi sign´alu nebr´an´ı ˇz´adn´e pˇrek´aˇzky jako napˇr. zdi, je dosah maj´aku natolik v´ yznamn´ y, ˇze m˚ uˇze zp˚ usobovat tyto chybn´e identifikace. Ostatn´ı maj´aky - tzn. venkovn´ı budovy urˇcen´e pouze geografickou polohou, patra a uˇcebny urˇcen´e QR k´odem, NFC tagem, Bluetooth sign´alem, WiFi sign´alem ˇci jejich kombinacemi - byly identifikov´any korektnˇe. V´ yˇse uveden´e chybn´e identifikace byly zp˚ usobeny vlastnostmi technologi´ı, kter´e nelze nijak zmˇenit. Pˇri dodrˇzov´an´ı n´asleduj´ıc´ıch z´asad, lze tyto chybn´e identifikace eliminovat. • Venkovn´ı maj´aky definovat pouze pomoc´ı geografick´e polohy. • Pˇri velk´e hustotˇe WiFi vys´ılaˇc˚ u je vhodn´e doplnit definici maj´ak˚ u o Bluetooth otisk. 2
poloha uˇzivatele je zn´ azornˇena modrou ˇsipkou
73
ˇ Bory Ovˇeˇren´ı funkˇcnosti - Are´al ZCU
Ovˇeˇren´ı funkˇcnosti
• Pokud spolu maj´aky soused´ı ve smyslu pater, je vhodn´e bud’ omezit v´ ykon WiFi vys´ılaˇc˚ u ˇci definovat maj´aky pouze Bluetooth otiskem.
(a) Dostupn´e maj´ aky na pozici A.
(b) Dostupn´e maj´aky na pozici B.
(d) Dostupn´e maj´aky na pozici C, situace 2.
(c) Dostupn´e maj´aky na pozici C.
(e) Dostupn´e maj´aky na pozici D.
Obr´azek 6.3: Uk´azka v´ ysledk˚ u pr˚ uzkumu okoln´ıch maj´ak˚ u.
74
7 Z´avˇer C´ılem t´eto diplomov´e pr´ace bylo prozkoumat trh existuj´ıc´ıch syst´em˚ u informaˇcn´ıch maj´ak˚ u, zjistit jak´e technologie a zp˚ usoby vyuˇz´ıvaj´ı pro identifikaci maj´ak˚ u a d´ale navrhnout dalˇs´ı moˇznosti, jak lze informaˇcn´ı maj´aky identifikovat vyuˇzit´ım mobiln´ıho zaˇr´ızen´ı. Na z´akladˇe zjiˇstˇen´ ych informac´ıch byla navrˇzena a realizov´ana mobiln´ı aplikace pro syst´em informaˇcn´ıch maj´ak˚ u na platformˇe Android. Bˇehem anal´ yzy bylo nalezeno a prozkoum´ano celkem ˇsest existuj´ıc´ıch syst´em˚ u. U kaˇzd´eho z nich byla pops´ana z´akladn´ı moˇznost pouˇzit´ı syst´emu vˇcetnˇe technologi´ı, kter´e pouˇz´ıv´a pro identifikaci maj´ak˚ u. D´ale bylo navrˇzeno celkem deset metod / technologi´ı, jeˇz se daj´ı vyuˇz´ıt pro identifikaci informaˇcn´ıch maj´ak˚ u mobiln´ım zaˇr´ızen´ım, at’ se jedn´a o identifikaci maj´ak˚ u uvnitˇr budovy, ˇci ve venkovn´ıch prostorech. Vzhledem k obecnosti navrˇzen´eho syst´emu Tagiee a velk´e otevˇrenosti Android SDK (oproti ostatn´ım majoritn´ım mobiln´ım platform´am) bylo vybr´ano celkem ˇsest metod / technologi´ı pro identifikaci maj´ak˚ u, kter´e budou implementov´any v klientsk´e aplikaci syst´emu Tagiee. Klientsk´a aplikace byla vytvoˇrena tak, aby se dala pohodlnˇe pouˇz´ıvat jak na telefonech, tak na tabletech. Spr´avn´a funkˇcnost aplikace vˇcetnˇe algoritm˚ u pro identifikaci informaˇcn´ıch maj´ak˚ u byla ovˇeˇrena na modelov´e situaci v are´alu Z´apadoˇcesk´e univerzity v Plzni. Instituce ˇc´ıt´a 5 venkovn´ıch a 6 vnitˇrn´ıch maj´ak˚ u, jeˇz byly z´amˇernˇe navrˇzeny tak, aby se otestovaly vˇsechny moˇznosti identifikace maj´ak˚ u. Aplikace identifikovala vˇetˇsinu maj´ak˚ u korektnˇe, chybn´e identifikace byly zp˚ usobeny nevhodn´ ym pouˇzit´ım technologi´ı. Detailn´ı v´ ysledky ovˇeˇren´ı jsou uvedeny v kapitole 6. Syst´emy informaˇcn´ıch maj´ak˚ u jsou v souˇcasn´e dobˇe rozv´ıjej´ıc´ım se oborem a lze oˇcek´avat jejich ˇcastˇejˇs´ı vyuˇzit´ı ve veˇrejn´e, vzdˇel´avac´ı i komerˇcn´ı sf´eˇre. Cel´ y syst´em Tagiee vˇcetnˇe mobiln´ı klientsk´e aplikace se uk´azal jako pouˇziteln´ y a urˇcitˇe m´a potenci´al k dalˇs´ımu rozvoji. Mezi jedno z moˇzn´ ych rozˇs´ıˇren´ı klientsk´e aplikace patˇr´ı implementace sluˇzby Google Cloud Messaging, d´ıky kter´e by pak spr´avci instituc´ı byli schopni zas´ılat kr´atk´e zpr´avy na zaˇr´ızen´ı uˇzivatel˚ u, kteˇr´ı jejich instituci navˇst´ıvili, a mohli je tak napˇr´ıklad informovat o nov´ ych expon´atech ˇci prob´ıhaj´ıc´ıch akc´ıch.
75
Seznam obr´ azk˚ u 2.1 2.2 2.3 2.4
Zobrazen´ı pl´an˚ u jednotliv´ ych pater n´akupn´ıho stˇrediska Arcaden, Hamburg, Nˇemecko . . . . . . . . . . . . . . . . . . . . . 6 Uk´azka natr´enovan´eho syst´emu. Zelen´e body urˇcuj´ı polohu uloˇzen´ ych otisk˚ u“.[Bolliger()] . . . . . . . . . . . . . . . . . . 8 ” Uk´azka aplikace TripAdvisor pro hlavn´ı mˇesto Praha - seznam turistick´ ych atrakc´ı. . . . . . . . . . . . . . . . . . . . . . . . . 10 Uk´azka klient˚ u syst´emu informaˇcn´ıch maj´ak˚ u pro konkr´etn´ı instituce realizovan´e na platformˇe Android . . . . . . . . . . . 13
3.1 3.2 3.3 3.4
Zp˚ usob rozloˇzen´ı a v´ yznam informac´ı uvnitˇr QR k´odu. [qr-(2000)] Uk´azka QR k´od˚ u . . . . . . . . . . . . . . . . . . . . . . . . . Pˇr´ıklad pouˇzit´ı WiFi otisk˚ u. . . . . . . . . . . . . . . . . . . . Jak vypad´a NFC tag uvnitˇr. [nfc(b)] . . . . . . . . . . . . . .
16 18 20 24
4.1 4.2 4.3 4.4 4.5
Uk´azka UI prvku Action Bar[and(a)] . . . . . . . Uk´azka UI prvku Title Bar . . . . . . . . . . . . . Porovn´an´ı pod´ılu jednotliv´ ych verz´ı OS Android . ˇ Zivotn´ı cyklus fragmentu.[and(c)] . . . . . . . . . Uk´azka v´ıcen´asobn´eho pouˇzit´ı fragmentu.[and(c)]
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
34 34 36 37 38
5.1 5.2 5.3 5.4 5.5 5.6 5.7
N´avrh komponent UI a jejich prov´az´an´ı . . . . Algoritmus hled´an´ı maj´ak˚ u. . . . . . . . . . . Uk´azka zapnut´ı / vypnut´ı sluˇzeb Google. . . . API kl´ıˇce pro Android aplikaci. . . . . . . . . Rozhodov´an´ı Tag Dispatch Systemu. [and(d)] Datov´ y model datab´aze . . . . . . . . . . . . . Uk´azka aplikace pro r˚ uzn´e konfigurace zaˇr´ızen´ı
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
46 52 53 54 57 61 64
6.1 6.2 6.3
Mapa 4. patra budovy FAV. . . . . . . . . . . . . . . . . . . . 71 ˇ Bory. . . . . . . . . . . . . . . . . 71 Venkovn´ı mapa are´alu ZCU Uk´azka v´ ysledk˚ u pr˚ uzkumu okoln´ıch maj´ak˚ u. . . . . . . . . . 74
. . . . . . .
. . . . . . .
Seznam tabulek 3.1
Maxim´aln´ı dosah a pˇr´ıkon Bluetooth zaˇr´ızen´ı dle tˇr´ıdy.[bt()] . 21
4.1 4.2
Nov´e kvalifik´atory.[and(b)] . . . . . . . . . . . . . . . . . . . . 35 Pˇr´ıklad pouˇzit´ı kvalifik´ator˚ u.[and(b)] . . . . . . . . . . . . . . 35
5.1 5.2
Pˇrehled nˇekter´ ych podporovan´ ych RTD . . . . . . . . . . . . . 59 Uk´azka sloˇzen´ı prvn´ıho bajtu textov´eho NFC RTD z´aznamu. . 66
Pˇ rehled pouˇ zit´ ych zkratek a znaˇ cen´ı Zkratka API BSSID BTS DOD dp
dpi Hz IMEI LED MAC NFC
QR RSSI SDK UI ˇ ZCU
Vysvˇ etlen´ı Application Programming Interface - jedn´a se o sadu tˇr´ıd, funkc´ı ˇci protokol˚ u nˇejak´e knihovny. Basic Service Set Identification - unik´atn´ı identifikace bezdr´atov´eho pˇr´ıstupov´eho bodu. Base Transceiver Station - zaˇr´ızen´ı usnadˇ nuj´ıc´ı bezdr´atovou komunikaci mezi s´ıt´ı oper´atora a mobiln´ım zaˇr´ızen´ım. Den otevˇren´ ych dveˇr´ı. Density-independent Pixel - virtu´aln´ı jednotka pixelu, kter´a je ekvivalentem jednoho fyzick´eho obrazov´eho bodu na obrazovce s 160 dpi. Pˇri dots per inch - poˇcet obrazov´ ych bod˚ u, kter´e se vejdou do d´elky jednoho palce. Hertz - jednotka frekvence v soustavˇe SI. International Mobile Equipment Identity - unik´atn´ı patn´actim´ıstn´e ˇc´ıslo pˇriˇrazen´e v´ yrobcem telefonu. Light-Emitting Diode - polovodiˇcov´ y svˇeteln´ y zdroj. Media Access Control - jedineˇcn´ y identifik´ator s´ıt’ov´eho zaˇr´ızen´ı. Near Filed Communication - sada standard˚ u definuj´ıc´ı architekturu bezdr´atov´e technologie pro komunikaci na kr´atk´e vzd´alenosti. Quick Response - nejˇcastˇeji pouˇzit´a ve spojen´ı s QR k´ody. Received Signal Strength Indication - oznaˇcen´ı pro jednotku oznaˇcuj´ıc´ı kvalitu sign´alu pro bezdr´atov´a zaˇr´ızen´ı. Software Development Kit - v´ yvojov´a sada umoˇzn ˇuj´ıc´ı v´ yvoj aplikac´ı pro OS Android. User Interface - uˇzivatelsk´e rozhran´ı. Z´apadoˇcesk´a univerzita v Plzni.
Literatura [and(a)] Action Bar [online]. a. [cit. 20.4.2013]. Dostupn´e z: http://developer.android.com/design/patterns/actionbar.html. [and(b)] Android 3.2 APIs [online]. b. [cit. 20.4.2013]. Dostupn´e z: http://developer.android.com/about/versions/android3.2.html. [and(c)] Fragments [online]. c. [cit. 20.4.2013]. Dostupn´e z: http://developer.android.com/guide/components/fragments.html. [and(d)] NFC Basics [online]. d. [cit. 23.4.2013]. Dostupn´e z: http://developer.android.com/guide/topics/connectivity/nfc/ nfc.html. [and(e)] Eric Schmidt: Google now at 1.5 million Android activations per day [online]. e. [cit. 19.4.2013]. Dostupn´e z: http://www.engadget.com/2013/04/16/eric-schmidt-googlenow-at-1-5-million-android-activations-per/. [bt()] A Look at the Basics of Bluetooth nology [online]. [cit. 16.4.2013]. http://www.bluetooth.com/Pages/Basics.aspx.
Wireless TechDostupn´e z:
[bt-()] New Alliance helps you find ‘needle in haystack’ [online]. [cit. 19.4.2013]. Dostupn´e http://conversations.nokia.com/2012/08/23/new-alliancehelps-you-find-needle-in-a-haystack/.
a z:
[byt()] ByteLight [online]. [cit. 13.4.2013]. http://www.bytelight.com/faqs.
z:
Dostupn´e
[ind()] Indoor Maps availability Google Maps for Mobile Help [online]. [cit. 10.4.2013]. Dostupn´e z: http://support.google.com/gmm/bin/answer.py?hl=en&answer= 1685827&topic=1685871&ctx=topic. 79
[loc()] Technology [online]. [cit. 17.4.2013]. http://locata.com/technology/.
Dostupn´e
[nfc(a)] NFC Forum [online]. a. [cit. 16.4.2013]. Dostupn´e http://www.nfc-forum.org/aboutnfc/nfc_andy_contactless. [nfc(b)] NFC Tag Antennas [online]. b. [cit. 16.4.2013]. http://rapidnfc.com/nfc_tag_antennas.
z: z:
Dostupn´e z:
[nfc(c)] Reverse-Engineering a Cryptographic RFID Tag [online]. c. [cit. 17.4.2013]. Dostupn´e z: http://www.cs.virginia.edu/ evans/pubs/usenix08/usenix08.pdf. [nfc(d)] NFC Tag Types [online]. d. [cit. 16.4.2013]. http://www.nfc.cc/technology/nfc-tag-types/.
Dostupn´e z:
[qr-(2000)] Information technology — Automatic identification and data capture techniques — Bar code symbology — QR Code [online]. 2000. [cit. 14.4.2013]. Dostupn´e z: http://raidenii.net/files/datasheets/misc/qr_code.pdf. [wim()] WiMAX vs. LTE: Should You Switch? [online]. [cit. 18.4.2013]. Dostupn´e z: http://www.pcmag.com/article2/0,2817,2403490,00.asp. [Bolliger()] BOLLIGER, P. RedPin - Adaptive. Zero-Configuration Indoor Localization through User Collaboration [online]. [cit. 13.4.2013]. Dostupn´e z: http://www.vs.inf.ethz.ch/publ/papers/bolligphredpin2008.pdf. [Cooksey()] COOKSEY, D. Understanding sitioning System [online]. [cit. 14.4.2013]. http://www.montana.edu/gps/understd.html.
the
Global PoDostupn´e z:
A Pˇr´ılohy A.1
Struktura CD
Pˇriloˇzen´e CD obsahuje n´asleduj´ıc´ı adres´aˇre: • diplomova-prace: V tomto adres´aˇri jsou vˇsechny soubory potˇrebn´e k u ´spˇeˇsn´emu pˇreloˇzen´ı textu diplomov´e pr´ace. – img - obsahuje vˇsechny obr´azky pouˇzit´e v diplomov´e pr´aci • javadoc-dokumentace: Obsahuje vˇsechny soubory vygenerovan´e JavaDoc dokumentace. • knihovny: Tento adres´aˇr obsahuje knihovny pouˇzit´e pˇri v´ yvoji klientsk´e aplikace. – Commons-lang3 - z t´eto knihovny je pouˇzita funkce na escapov´an´ı n´arodn´ıch znak˚ u – Gson - knihovna pro parsov´an´ı JSON zpr´av – JakeWharton-Android-ViewPagerIndicator-8cd549f - knihovna pro zobrazen´ı identifik´ator˚ u prvku UI ViewPager – YouTubeAndroidPlayerApi-1.0.0 - knihovna pro pˇrehr´av´an´ı streamovan´eho videa z YouTube • ZBarScannerLibrary - knihovna ˇcteˇcky QR k´od˚ u jako Android projekt • zdrojove-kody – Tagiee - tento adres´aˇr obsahuje projekt cel´e klientsk´e aplikace. V pˇr´ıpadˇe importov´an´ı projektu (lze pouze do Eclipse IDE) je tˇreba m´ıt nainstalovan´e Android SDK a naimportovanou knihovnu google-play-services lib. Po importov´an´ı projektu je tˇreba v jeho nastaven´ı nastavit spr´avn´e cesty ke vˇsem v´ yˇse uveden´ ym knihovn´am.
i
Pˇr´ılohy
A.2 A.2.1
Uˇzivatelsk´a pˇr´ıruˇcka
Uˇ zivatelsk´ a pˇ r´ıruˇ cka Instalace aplikace
Klientskou aplikaci si lze st´ahnout na adrese http://dev.tagiee.com v sekci Android. Aplikace (.apk soubor) je zde ke staˇzen´ı v nˇekolika verz´ıch, avˇsak doporuˇceno je st´ahnout nejnovˇejˇs´ı verzi 1.0.0. Aplikace nen´ı v souˇcasn´e dobˇe um´ıstˇena v ofici´aln´ım port´alu aplikac´ı Google Play, tud´ıˇz je nutn´e, aby mˇel uˇzivatel povoleno instalovat aplikace z jin´ ych zdroj˚ u, neˇz je Google Play. Povolen´ı se v zaˇr´ızen´ı nastavuje n´asledovnˇe1 : Nastaven´ı -> Zabezpeˇcen´ı -> Spr´ava zaˇr´ızen´ı -> Povolit nezn´am´e zdroje. Pro u ´spˇeˇsnou instalaci je tˇreba m´ıt mobiln´ı zaˇr´ızen´ı s OS Android ve verzi 3.0+ a alespoˇ n 10 MB voln´eho m´ısta. Pokud si uˇzivatel st´ahne instalaˇcn´ı soubor do vnitˇrn´ı pamˇeti telefonu, lze ho pomoc´ı libovoln´eho spr´avce soubor˚ u spustit a aplikace se nainstaluje. V pˇr´ıpadˇe, ˇze si uˇzivatel st´ahne instalaˇcn´ı soubor do poˇc´ıtaˇce, je tˇreba ho bud’ pˇrekop´ırovat do mobiln´ıho zaˇr´ızen´ı, kde se spust´ı dˇr´ıve uveden´ ym zp˚ usobem, nebo ho nainstalovat vyuˇzit´ım programu adb pˇr´ıkazem uveden´ ym n´ıˇze. Tento postup pˇredpokl´ad´a, ˇze m´a uˇzivatel na sv´em poˇc´ıtaˇci nainstalov´an Android SDK, konkr´etnˇe bal´ık Android SDK Platform-tools. adb install Tagiee_1_0_0 . apk
Analogick´ ym zp˚ usobem lze nainstalovat i administr´atorskou aplikaci TagieeAdmin, kter´a je dostupn´a na stejn´e adrese v sekci Android.
A.2.2
Pouˇ z´ıv´ an´ı aplikace
Po u ´spˇeˇsn´e instalaci a spuˇstˇen´ı aplikace jsou okamˇzitˇe vyhled´av´any instituce v okol´ı. V pˇr´ıpadˇe, ˇze zaˇr´ızen´ı nem´a povoleny sluˇzby pro zjiˇst’ov´an´ı polohy, je nutn´e se k instituci pˇrihl´asit ruˇcnˇe. Vytvoˇren´a instituce Z´apadoˇcesk´e univerzity v Plzni m´a sv˚ uj unik´atn´ı identifik´ator zcu. Po pˇrihl´aˇsen´ı m˚ uˇze uˇzivatel s aplikac´ı d´ale pracovat. Rozm´ıstˇen´ı maj´ak˚ u v are´alu je zn´azornˇeno v kapitole 6 na obr´azc´ıch 6.1 a 6.2. Uˇzivatel si tak´e m˚ uˇze vytvoˇrit svou vlastn´ı instituci s vlastn´ımi maj´aky 1
Postup se m˚ uˇze m´ırnˇe liˇsit v z´ avislosti na verzi OS Android a v´ yrobci zaˇr´ızen´ı.
ii
Pˇr´ılohy
Uˇzivatelsk´a pˇr´ıruˇcka
vyuˇzit´ım webov´eho rozhran´ı vytvoˇren´eho v r´amci diplomov´e pr´ace Bc. Lud’ka Vlka na adrese http://www.tagiee.com. K tomu je ovˇsem nutn´e si vytvoˇrit vlastn´ı uˇzivatelsk´ yu ´ˇcet. Aby mohl spr´avce vyuˇz´ıt veˇskerou funkˇcnost administr´atorsk´e aplikace (prohl´ıˇzen´ı hodnocen´ı a statistik instituce a maj´ak˚ u, pˇr´ıprava NFC tag˚ u), mus´ı se nejprve pˇrihl´asit sv´ ym uˇzivatelsk´ ym jm´enem a heslem, kter´e zadal pˇri registraci v syst´emu Tagiee (na adrese http://www.tagiee.com). Pro otestov´an´ı klientsk´e aplikace n´asleduje nˇekolik QR k´od˚ u vˇcetnˇe unik´atn´ıch ˇc´ıseln´ ych k´od˚ u s popisem, co znaˇc´ı.
(a) Fakulta aplikovan´ ych vˇed, #391
(b) Katedra informatiky a v´ ypoˇcetn´ı techniky, #169
(c) Uˇcebna poˇc´ıtaˇcov´ ych s´ıt´ı, #805
(d) EEG ERP uˇcebna, #850
iii
Pˇr´ılohy
A.3
Seznam JSON poˇzadavk˚ u a odpovˇed´ı
Seznam JSON poˇ zadavk˚ u a odpovˇ ed´ı
V t´eto ˇc´asti budou pops´any jednotliv´e poˇzadavky na server, tzn. co vˇse je potˇreba vyplnit do poˇzadavku a n´aslednˇe bude pops´ana odpovˇed’ serveru.
A.3.1
add_review
Tento poˇzadavek je na server odesl´an vˇzdy, kdyˇz uˇzivatel pˇrid´a hodnocen´ı instituce, ke kter´e je pˇrihl´aˇsen. [ type ] = > add_review [ udid ] = > string - unikatni identifikator zarizeni [ uiid ] = > string - instituce , ke ktere se hodnoceni pridava [ review ] = > string - kratke slovni hodnoceni [ rating ] = > int [ platform ] = > string { ios | android | win } [ version ] = > string - ve formatu x . x . x ODPOVED [ status ] = > boolean
A.3.2
beacon_found
Tento poˇzadavek odes´ıl´a zaˇr´ızen´ı automatiky pˇri kaˇzd´em zobrazen´ı detailu informaˇcn´ıho maj´ak˚ u. Na z´akladˇe takto z´ıskan´ ych dat server vypoˇc´ıt´av´a r˚ uzn´e statistiky. [ type ] = > device_f ound_be acon [ udid ] = > string - unikatni identifikator zarizeni [ uiid ] = > string - instituce , ke ktere se pozadavek tyka [ tech ] = > string { gps | qr | nfc | key } - pouzita technologie , neni povinna [ disco vered_da tetime ] = > datetime [ platform ] = > string { ios | android | win } [ version ] = > string - ve formatu x . x . x ODPOVED [ status ] = > boolean
iv
Pˇr´ılohy
A.3.3
Seznam JSON poˇzadavk˚ u a odpovˇed´ı
device_visit_institution
Stejnˇe jako pˇredchoz´ı poˇzadavek je i tento pouze pro statistick´e u ´daje. Je odesl´an pˇri kaˇzd´em pˇrihl´aˇsen´ı uˇzivatele k instituci. [ type ] = > d e v i c e _ v i s i t _ i n s t i t u t i o n [ udid ] = > string - unikatni identifikator zarizeni [ uiid ] = > string - instituce , ke ktere se pozadavek tyka [ disco vered_da tetime ] = > datetime [ platform ] = > string { ios | android | win } [ version ] = > string - ve formatu x . x . x ODPOVED [ status ] = > boolean
A.3.4
get_institution_by_uiid
Jedn´a se o nejd˚ uleˇzitˇejˇs´ı poˇzadavek, kter´ y vrac´ı kompletn´ı informace o dan´e instituci. Odpovˇed’ je personalisovan´a podle uˇzivatele, co se t´ yˇce pˇr´ıznak˚ u, zda-li uˇzivatel instituci hodnotil a kter´e maj´aky jiˇz navˇst´ıvil. [ type ] = > g e t _ i n s t i t u t i o n _ b y _ u i i d [ udid ] = > string - unikatni identifikator zarizeni [ uiid ] = > string - instituce , ke ktere se pozadavek tyka [ platform ] = > string { ios | android | win } [ version ] = > string - ve formatu x . x . x ODPOVED [ status ] = > boolean [ response ]= > ( [ revision ] = int [ logo ] = > string - url obrazku [ uiid ] = > string [ name ] = > string [ description ] = > string [ address ] = > string [ lat ] = > double [ lon ] = > double [ tel ] = > string [ support_email ] = > string [ prices ] = > ( [1.. N array ] [ type ] = > string [ price ] = > string [ currency ] = > string
v
Pˇr´ılohy
Seznam JSON poˇzadavk˚ u a odpovˇed´ı
) [ opening_hours ] = > ( [1.. N array ] [ days ] = > string [ time ] = > string ) [ allow_offline ] = > boolean [ allow_uploads ] = > boolean [ allow_reviews ] = > boolean [ number_reviews ] = > int [ rating ] = > float [ user_posted_review ] = > boolean [ beacons ] = > ( [1.. N array ] = > ( [ ubid ] = > string [ name ] = > string [ description ] = > string [ lat ] = > double [ lon ] = > double [ key ] = > int [ additional ] = > ( [1.. N array ] = > - sila signalu urcena poradim ( [ tech ] = > string [ data ] = > string ) ) [ content ] = > ( [1.. N array ] = > ( [ type ] = > string { image | text | audio | video | youtube | href } [ heading ] = > string [ content ] = > string [ resource_id ] = > ( [0.. N array ] = > int ) ) ) [ discovered ] = > boolean ) ) [ resources ] = > ( [1.. N array ] = > ( [ id ] = > int [ type ] = > string [ size ] = > double
vi
Pˇr´ılohy
Seznam JSON poˇzadavk˚ u a odpovˇed´ı
[ path ] = > string [ metadata ] = > ( [ width ] = > int [ height ] = > int [ caption ] = > string ) ) ) ) )
A.3.5
get_institution_list
Odpovˇed´ı na tento poˇzadavek je seznam instituc´ı (vˇc. z´akladn´ıch u ´daj˚ u) vyuˇz´ıvaj´ıc´ıch syst´em Tagiee v urˇcit´e vzd´alenosti od uˇzivatele. Maxim´aln´ı vzd´alenost od uˇzivatele je definovan´a na serveru. [ type ] = > ge t_i nst it uti on _li st [ udid ] = > string - unikatni identifikator zarizeni [ platform ] = > string { ios | android | win } [ version ] = > string - ve formatu x . x . x [ lat ] = > double [ lon ] = > double ODPOVED [ status ] = > boolean [ response ]= > ( [1.. N array ] [ revision ] = int [ logo ] = > string - url obrazku [ uiid ] = > string [ name ] = > string [ address ] = > string [ lat ] = > double [ lon ] = > double [ rating ] = > double [ number_reviews ] = > int )
A.3.6
get_institution_revision
Reakce na poˇzadavek je pouh´e vr´acen´ı ˇc´ısla revize dat v syst´emu. Na z´akladˇe t´eto hodnoty se aplikace d´ale rozhoduje, zda-li m´a smysl naˇc´ıtat data ze sysvii
Pˇr´ılohy
Seznam JSON poˇzadavk˚ u a odpovˇed´ı
t´emu znova nebo zda-li staˇc´ı pouˇz´ıt lok´aln´ı uloˇzen´a data. [ type ] = > g e t _ i n s t i t u t i o n _ r e v i s i o n [ udid ] = > string - unikatni identifikator zarizeni [ uiid ] = > string - instituce , ke ktere se pozadavek tyka [ platform ] = > string { ios | android | win } [ version ] = > string - ve formatu x . x . x ODPOVED [ status ] = > boolean [ response ]= > ( [ revision ] = int )
A.3.7
get_reviews
T´ımto poˇzadavkem aplikace ˇz´ad´a server o vr´acen´ı seznamu hodnocen´ı dan´e instituce. [ type ] = > get_reviews [ udid ] = > string - unikatni identifikator zarizeni [ uiid ] = > string - instituce , ke ktere se pozadavek tyka [ platform ] = > string { ios | android | win } [ version ] = > string - ve formatu x . x . x [ from ] = > int - spodni limit [ to ] = > int - horni limit ODPOVED [ status ] = > boolean [ response ]= > ( [1.. N array ] [ added ] = > string [ rating ] = > double [ review ] = > string )
viii