Na tomto míst bude ociální zadání va²í práce



Podobné dokumenty
IP kamerový systém Catr - uºivatelský návod k obsluze

BOZP - akcepta ní testy

Specifikace systému ESHOP

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné

Nastavení vestav ného p evodníku Ethernet -> sériová linka ES01

Termíny zkoušek Komise Komise. subkomise 1 (obhaj.) :30 B subkomise 2 (obhaj.) :30 B8 120

Uºivatelská p íru ka Octopus

Odpov di na dotazy k ve ejné zakázce. 30/ SSZ Registr IKP

Integrování jako opak derivování

e²ení systém lineárních rovnic pomocí s ítací, dosazovací a srovnávací metody

Úvod, terminologie. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 1

Konceptuální modelování

Rozšířená nastavení. Kapitola 4

P íklad 1 (Náhodná veli ina)

Vektory. Vektorové veli iny

Skalární sou in. Úvod. Denice skalárního sou inu

Fakulta elektrotechnická

Android Elizabeth. Verze: 1.3

Mapa kamer mobilní aplikace pro Android

Prohlá²ení. V Praze dne 18. dubna

CT LINE XVD MODUL FAX-MODEMOVÉHO P EPÍNA E, VRÁTNÉHO, PROVOLBY DISA A SPÍNA E T LINE TABLO 2,4,10 DVE NÍ TELEFON VRÁTNÉHO (VN JŠÍ JEDNOT KA) 1 ÚVOD

Online komunikace a videokonference

Technologie VoIP. Od historie po současnost

Adresa p íslušného ú adu. Ú ad:... Ulice:... PS, obec:...

WEBMAP Mapový server PŘÍRUČKA PRO WWW UŽIVATELE Hydrosoft Veleslavín, s.r.o., U Sadu 13, Praha 6

WEBDISPEČINK NA MOBILNÍCH ZAŘÍZENÍCH PŘÍRUČKA PRO WD MOBILE

Knihovna QT4 a moºnosti jejího vyuºití

KX-TDA verze Rozšiřte kapacitu a schopnosti Vašeho systému KX-TDA povýšením na verzi 2.02.

funkční na dual-sim telefonech možnost přesměrovat příchozí hovory možnost nastavení více telefonních čísel pro případ, že je jedno nedostupné

2C Tisk-ePROJEKTY

DeepBurner (testování UI)

Soft Computing (SFC) 2014/2015 Demonstrace u ení sít RCE, Java aplikace

Pr b h funkce I. Obsah. Maxima a minima funkce

Návod k použití aplikace MARKETINGOVÉ PRŮZKUMY.CZ

IPCorder KNR-100 Instala ní p íru ka

Server. Software serveru. Služby serveru

HLAVA III PODROBNOSTI O VEDENÍ ÚST EDNÍHO SEZNAMU OCHRANY P ÍRODY

Evko - uºivatelská p íru ka verze 5.1.0

Uºivatelská p íru ka k programu SlaFoR verze 1.0

Vektor náhodných veli in - práce s více prom nnými

Návod k používání registračního systému ČSLH

T i hlavní v ty pravd podobnosti

ŽÁDOST O VYDÁNÍ ROZHODNUTÍ O UMÍST NÍ STAVBY ÁST A

účetních informací státu při přenosu účetního záznamu,

-1- N á v r h ČÁST PRVNÍ OBECNÁ USTANOVENÍ. 1 Předmět úpravy

Sazba zdrojových kód. Jakub Kadl ík

Platební styk (mezibankovní, klientský) Jitka Vachtová 28. íjna 2011

Kelvin v kapkový generátor

Výzva k podání nabídek (pro ú ely uve ejn ní na nebo www stránkách kraj )

Návod pro vzdálené p ipojení do sít UP pomocí VPN pro MS Windows 7

Limity funkcí v nevlastních bodech. Obsah

Seminá e. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, sem. 1-13

ISDN telefony AVAYA 1408 / 1416 připojené na Integral Enterprise. Návod na obsluhu

Postup šetření pro rok Ministerstvo pro místní rozvoj Odbor veřejného investování

datovou schránkou adresát: Lucon CZ s.r.o. Mozartova 928/12 Praha 5 - Smíchov

HiPath ProCenter Office V1.0

Program Power Cinema 3

1. Požadavky na provoz aplikací IISPP

Prezentace. Ing. Petr V elák 6. b ezna 2009

Nastavení telefonu T-Mobile MDA Touch

SPECIFIKACE ZADÁNÍ. 1. Identifikační údaje zadavatele. 2. Předmět veřejné zakázky malého rozsahu Základní údaje Oprávněné osoby zadavatele

ICT plán školy 2015/2016

Věc: Výzva pro předložení nabídek k veřejné zakázce s názvem: VÚ a ŠJ PŠOV, Nákup nového osmimístného vozidla

Copyright Dale Carnegie & Associates, Inc.

Odpov di na dotazy uchaze k ve ejné zakázce. 25/

Binární operace. Úvod. Pomocný text

Výzva k podání nabídek (zadávací dokumentace)

VÝZVA K PODÁNÍ NABÍDKY

HYDROLUX HL Elektro-akustický lokátor únik pomocí p dního mikrofonu, dotykového mikrofonu a H 2 senzoru

112 LINKA TÍSŇOVÝCH VOLÁNÍ

Vyplňte API klíč, který si vygenerujete v Nastavení obchodu v profilu Uloženky v části Nastavit klíč pro API.

1. Informace o předmětu zakázky Stručný textový popis zakázky, technická specifikace

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Inovace výuky prostřednictvím šablon pro SŠ

WinCC V7.3. SIMATIC Logon. Siemens, s.r.o., Digital Factory 2015 Všechnapráva vyhrazena. Strana Ladislav Plachý / RC-CZ DF SUP

Výzva pro předložení nabídek k veřejné zakázce malého rozsahu s názvem Výměna lina

Dálkové p enosy ze za ízení aktivní protikorozní ochrany Severomoravské plynárenské, a.s.

Transak ní zpracování I

8. Struktura údaj na LCD displeji

Základní praktikum laserové techniky

Zadávací dokumentace

ZADÁVACÍ DOKUMENTACE K ZAKÁZCE ZADÁVANÉ DLE PRAVIDEL PRO VÝBĚR DODAVATELŮ OPPI A SUBSIDIÁRNĚ DLE ZÁKONA Č. 137/2006 SB

I. Objemové tíhy, vlastní tíha a užitná zatížení pozemních staveb

Mikromarz. CharGraph. Programovatelný výpočtový měřič fyzikálních veličin. Panel Version. Stručná charakteristika:

DVOUK ÍDLÁ VRATA A VEDLEJ Í DVE E KRU ÍK

Manuál uživatele čipové karty s certifikátem

INTERNETOVÝ TRH S POHLEDÁVKAMI. Uživatelská příručka

Nastavení telefonu Samsung I9195 Galaxy S4 mini

1. (18 bod ) Náhodná veli ina X je po et rub p i 400 nezávislých hodech mincí. a) Pomocí ƒeby²evovy nerovnosti odhadn te pravd podobnost

JabloSuite - návod k obsluze

Národního registru u ivatel léka sky indikovaných substitu ních látek (papírové hlá enky)

Testy pro více veli in

Testování p ístupnosti stránek státní správy ƒeské republiky. Václav Trpák

Bezdrátové připojení (pouze u vybraných modelů) Uživatelská příručka

29 Evidence smluv. Popis modulu. Záložka Evidence smluv

S M R N I C E. na základ zákona 106/1999Sb., o svobodném p ístupu k informacím (dále jen zákon)

DUM 05 téma: Základy obsluha Gimp

Manuál Kentico CMSDesk pro KDU-ČSL

Aplika ní doložka KA R Ov ování výro ní zprávy

Transkript:

Na tomto míst bude ociální zadání va²í práce Toto zadání je podepsané d kanem a vedoucím katedry, musíte si ho vyzvednout na studiijním odd lení Katedry po íta na Karlov nám stí, v jedné odevzdané práci bude originál tohoto zadání (originál z stává po obhajob na kated e), ve druhé bude na stejném míst neov ená kopie tohoto dokumentu (tato se vám vrátí po obhajob ). i

ii

ƒeské vysoké u ení technické v Praze Fakulta elektrotechnická Katedra po íta Bakalá ská práce Mobilní aplikace pro ovládání úst edny Tomá² orejs Vedoucí práce: Ing. Pavel Strnad Studijní program: Elektrotechnika a informatika, dobíhající, Bakalá ský Obor: Výpo etní technika 24. kv tna 2012

iv

v Pod kování Rád bych pod koval v²em, jenº mi pomohli p i tvorb této práce. P edev²ím vedoucímu Ing. Pavlu Strnadovi za cenné rady a Bc. Martinu Sethovi za pomoc, kdykoliv to bylo pot eba. Dále nesmím zapomenout pod kovat rodin a v²em svým blízkým za jejich podporu.

vi

vii Prohlá²ení Prohla²uji, ºe jsem práci vypracoval samostatn a pouºil jsem pouze podklady uvedené v p iloºeném seznamu. Nemám závaºný d vod proti uºití tohoto ²kolního díla ve smyslu Ÿ60 Zákona. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o zm n n kterých zákon (autorský zákon). V Turnov dne 25. 5. 2012.............................................................

viii

Abstract This work sumarizes options and features of the phone call in Android operating system. Features of the phone call can be extended by ability to use a gsm exchange. This work discusses advantages and disadvantages of this solution. Second half of this work covers desing, implementation and testing the gsm exchange application. Abstrakt Tato práce shrnuje moºnosti a funkce spojené s telefonním hovorem na opera ním systému Android. Moºnosti telefonu jsou dále roz²í ené voláním p es telefonní úst ednu a práce se zabývá výhodami a nevýhodami tohoto e²ení. Navrºení, realizaci a testování aplikace pro telefonní úst ednu pak popisuje druhá ást práce. ix

x

Obsah 1 Úvod 1 2 Popis problému, specikace cíle 3 2.1 Popis e²eného problému.............................. 3 2.2 Specikace cíle................................... 3 2.3 Struktura práce................................... 3 3 Vymezení základních pojm a zkratek 5 3.1 Technologie a zkratky týkající se telefonních hovor............... 5 3.1.1 Telefonní hovor............................... 5 3.1.2 Telefonní úst edna............................. 5 3.1.3 DTMF.................................... 5 3.1.4 Moºnosti telefonních hovor........................ 5 3.1.4.1 Parkování hovor......................... 6 3.1.4.2 Druhý hovor........................... 6 3.2 Technologie a zkratky týkající se programovací ásti.............. 6 3.2.1 Android................................... 6 3.2.2 Java..................................... 6 3.2.3 JSON.................................... 6 3.2.4 SQL..................................... 6 3.2.5 MySQL................................... 7 3.2.6 PHP..................................... 7 3.2.7 HTTP.................................... 7 3.2.8 REST.................................... 7 3.2.9 API..................................... 7 3.2.10 SDK..................................... 7 4 Zpracování existujících e²ení 9 4.1 Moºnosti práce s hovorem v Androidu...................... 9 4.1.1 Základní funkce opera ního systému:................... 9 4.1.2 e²ení dal²ích funkcí pomocí nalezených aplikací............ 9 4.1.2.1 Nahrávání hovoru........................ 9 4.1.3 Problematika naprogramování aplikace pro práci s telefonním hovorem 11 4.1.3.1 Odchytávání p íchozího a odchozího hovoru.......... 11 4.1.3.2 Vytvo ení hovoru......................... 12 xi

xii OBSAH 4.1.3.3 Nahrávání hovoru........................ 12 4.1.3.4 Odmítnutí hovoru a p esm rování hovoru........... 12 4.2 Moºnosti práce s hovorem s pouºitím telefonní úst edny............ 13 4.2.1 Sluºby.................................... 13 4.2.2 Ovládání úst edny mobilním telefonem.................. 13 4.2.3 Volání p es telefonní úst ednu....................... 14 4.3 Shrnutí obou e²ení................................. 14 5 Analýza a návrh e²ení mobilní aplikace pro ovládání úst edny 15 5.1 Analýza a návrh e²ení na stran klienta..................... 15 5.1.1 Funk ní poºadavky............................. 15 5.1.2 Nefunk ní poºadavky............................ 15 5.1.3 Defaultní a dodate né vlastnosti úst edny................ 16 5.1.4 Volba pouºitých technologií........................ 16 5.1.4.1 Vývojové prost edí a za ízení.................. 16 5.1.4.2 Formát pro p enos dat...................... 16 5.1.5 Pr chod aplikací.............................. 16 5.1.6 Vzhled aplikace............................... 16 5.1.7 Navigace v aplikaci a seznam pohled.................. 17 5.1.7.1 Hlavní pohled.......................... 17 5.1.7.2 Nastavení p esm rování..................... 17 5.1.7.3 Automaticky generovaná nastavení............... 18 5.1.8 Identikace za ízení............................ 18 5.2 Analýza a návrh e²ení na stran serveru..................... 18 5.2.1 Funk ní poºadavky............................. 18 5.2.2 Nefunk ní poºadavky............................ 18 5.2.3 Volba pouºitých technologií........................ 18 5.2.3.1 Databáze............................. 18 5.2.3.2 Technologie serveru....................... 19 5.2.4 Databázový model............................. 19 6 Realizace 21 6.1 Realizace na stran klienta............................. 21 6.1.1 Popis ovládacích komponent........................ 21 6.1.2 Architektura aplikace............................ 21 6.1.3 Class diagram................................ 21 6.1.4 Odesílání a p ijímání poºadavk na server................ 22 6.1.5 Uchovávání a aktualizace nastavení.................... 24 6.1.6 Vyhledání telefonního ísla v kontaktech................. 24 6.1.7 Nastavení id a tvorba telefonního hovoru................. 24 6.2 Realizace na stran serveru............................ 25 7 Testování 27 7.1 Unit testy...................................... 27 7.1.1 Zp sob testování.............................. 27 7.1.1.1 ƒtení z databáze......................... 27

OBSAH xiii 7.1.1.2 Zápis do databáze........................ 27 7.1.2 Výsledky test............................... 28 7.2 Usability test.................................... 28 7.2.1 Zp sob testování.............................. 28 7.2.2 Výsledky testování............................. 29 7.3 Záv r testování................................... 29 8 Záv r 31 8.1 Zhodnocení cíl................................... 31 8.2 Moºné pokra ování práce............................. 31 A Instala ní a uºivatelská p íru ka 35 A.1 Instalace aplikace CallMaker............................ 35 A.2 Spu²tení a navigace v aplikaci........................... 35 A.2.1 První spu²t ní aplikace........................... 35 A.2.2 Hlavní pohled................................ 35 A.2.3 Zavolání osoby z adresá e......................... 35 A.2.4 Zadání telefonního ísla ru n....................... 35 A.3 Nastavení...................................... 36 A.3.1 Nastavení p esm rování.......................... 36 A.3.2 Ostatní nastavení.............................. 36 B Ukázka uºivatelského rozhraní 37 C Obsah p iloºeného CD 43

xiv OBSAH

Seznam obrázk 4.1 Ovládání základních funkcí b hem hovoru v systému Android......... 10 5.1 Diagram aktivit................................... 17 5.2 Databázový model................................. 19 6.1 Architektura aplikace................................ 22 6.2 Class diagram.................................... 23 B.1 Hlavní pohled.................................... 37 B.2 Nastavení p esm rování do kancelá e....................... 38 B.3 Výb r osoby v adresá i............................... 38 B.4 Výb r pro více ísel v kontaktu.......................... 39 B.5 Zadání telefonního ísla ru n........................... 39 B.6 Menu nastavení................................... 40 B.7 Nastavení p esm rování.............................. 40 B.8 Informace o p esm rování............................. 41 B.9 Ostatní nastavení.................................. 41 xv

xvi SEZNAM OBRÁZK

Kapitola 1 Úvod Pro v t²inu lidí je dnes samoz ejmostí pouºívání mobilních telefon. Ze zavazadlových prostor automobil se telefon dostal do kapsy kaºdého z nás. Krom volání, byl postupným vývojem obohacen o spoustu dal²ích funkcí. Práv díky rozvoji funkcí se v poslední dob stalo z mobilního telefonu n co víc neº jen p ístroj pro telefonování a pro mnoho lidí uº tato, moºná zastaralá funkce, není primárním ú elem pro jeho po ízení. Velkými událostmi pro mobilní telefon pak bylo jeho p ipojení k internetu a první opera ní systémy, které pozd ji umoºnily ve ejnosti programování vlastních aplikací. My jsme se tak od jednoduchého telefonního hovoru dostali k antivirovým aplikacím, jenº b ºí na za ízení s více jádry a výpo etním výkonem srovnatelným s b ºným stolním po íta em p ed deseti lety. Tato bakalá ská práce se ale vrací k základní funkci mobilního telefonu, ímº je telefonní hovor. Z ²irokého výb ru dostupných opera ních systém byl vybrán Android 1, na kterém vám bude ukázáno, jaké má dnes uºivatel moºnosti práce s telefonním hovorem. Tyto moºnosti jsou následn porovnány s e²ením p i volání pomocí telefonní úst edny. V dal²í ásti práce se seznámíte s aplikací, která byla navrºena pro telefonování a ovládání úst edny pomocí telefonu s opera ním systémem Android. 1 Mobilní platforma, více v kapitole 3.2.1 1

2 KAPITOLA 1. ÚVOD

Kapitola 2 Popis problému, specikace cíle 2.1 Popis e²eného problému P íchod moderních opera ních systém a hlavn moºnosti pro programování vlastních aplikací do mobilních telefon zap í inilo velké mnoºství omezení pro práci s telefonním hovorem. Klasické funkce jako nap íklad blokování nebo nahrávání telefonního hovoru jiº nejsou samoz ejmostí základní výbavy mobilního telefonu a v n kterých p ípadech o n systém jiº ani nejde obohatit. Existuje ale spousta uºivatel, kte í n které z t chto funkcí pot ebují. Jim se nabízí vyuºít omezené moºnosti n které z dostupných aplikací nebo pouºít pro tyto poºadavky telefonní úst ednu, p es kterou budou vykonávat své telefonní hovory. 2.2 Specikace cíle Cílem této práce je shrnout moºnosti práce s telefonním hovorem na platform Android jak pro uºivatele, tak pro programátory. Dále pak srovnat výhody a nevýhody pro e²ení s pouºitím telefonní úst edny. Hlavním cílem je návrh, realizace a otestování aplikace pro ovládání telefonní úst edny, která umoº uje volání p es úst ednu a nastavení jednotlivých parametr úst edny. Velký d raz by m l být kladen na snadnou roz²i itelnost aplikace bez nutnosti její aktualizace. 2.3 Struktura práce Práce je rozd lena na dv ásti. V té první se zabývá problematikou týkající se práce s telefonními hovory na platform Android, jako je nap íklad nahrávání hovor. Jsou popsány defaultní moºnosti systému a jejich nalezené moºnosti roz²í ení pomocí aplikací. Dále je zahrnuta problematika jejich implementace a vlastní poznatky s prací okolo programování aplikací tykajících se telefonního hovoru na Androidu. Moºnosti samotného telefonu jsou následn porovnány s roz²í ením pomocí telefonování p es vlastní telefonní úst ednu. 3

4 KAPITOLA 2. POPIS PROBLÉMU, SPECIFIKACE CÍLE Druhá ást práce se pak v nuje návrhu a realizaci samotné aplikace pro ovládání b ºné telefonní úst edny. Je popsáno navrºení a realizace aplikace. Nakonec je aplikace otestována a v²echny poznatky jsou shrnuty v záv ru práce.

Kapitola 3 Vymezení základních pojm a zkratek V této kapitole je up esn no n kolik základních pojm a zkratek, které jsou pouºity v celé práci. 3.1 Technologie a zkratky týkající se telefonních hovor 3.1.1 Telefonní hovor Tato práce se v nuje mobilním telefon m, proto pokud není uvedeno jinak, se pod tímto pojmem rozumí telefonní spojení pomocí standardu GSM. 3.1.2 Telefonní úst edna Tímto pojmem není v práci ozna ena ºádná konkrétní telefonní úst edna. Je jím my²lena telefonní úst edna podporující GSM volání a základní funkce úst edny, které jsou shrnuty v sekci 4.2.1. 3.1.3 DTMF Dual-tone Multi Frequency je tón, který je sloºen ze dvou sinusových signál o p esn dané frekvenci. Hodnoty jednotlivých frekvencí jsou voleny tak, aby nebylo p íli² sou ástkov náro né vytvo it frekven ní ltry a zárove, aby bez problém pro²ly telekomunika ními telefonními cestami. Standard DTMF p enosu je 50ms trvání tónu ku 50ms "ticha". DTMF je základní kámen ízení hlasových komunikací. Sou asná telefonie pomocí DTMF vytá í, nastavuje úst edny atd. DTMF umí generovat tém kaºdý mobilní telefon po navázání spojení. DTMF bylo hned od po átku vymy²leno tak, aby bylo moºno pouºít i zvukový p enos a kódy bylo moºno zachytit jakýmkoliv mikrofonem.[3] 3.1.4 Moºnosti telefonních hovor Moºností práce s telefonním hovorem je velmi mnoho. Vybrány byly proto ty, u kterých by z názvu nemuselo být jasné jejich pouºití. 5

6 KAPITOLA 3. VYMEZENÍ ZÁKLADNÍCH POJM A ZKRATEK 3.1.4.1 Parkování hovor Znamená p idrºení probíhajícího hovoru po stisknutí tla ítka na telefonu nebo vyto ením kódu, který se ode²le pomocí DTMF na úst ednu. Hovor ve stavu zaparkován je stále aktivní, ale "zaparkovaný"ú astník hovoru nevysílá ºádná data a druhá strana pomocí telefonu i úst edny vysílá defaultní tón nebo melodii pro zaparkovaný hovor. Zaparkovaný hovor je pak znovu vyzvednut tím samým ú astníkem, který hovor zaparkoval v p ípad parkování na telefonu. V p ípad uºití úst edny m ºe zaparkovaný hovor p evzít i jiný ú astník. 3.1.4.2 Druhý hovor Jedná se v t²inou o situaci, kdyº p i navázaném spojení vyto í jednoho z ú astník dal²í íslo. Ú astník má pak p i aktivovaném druhém hovoru moºnost nový hovor spravovat. 3.2 Technologie a zkratky týkající se programovací ásti 3.2.1 Android Android je mobilní opera ní systém zaloºený na modikované verzi Linuxu. Spole nost Android Inc. vznikla v roce 2003 a nejv t²ím zlomem byl rok 2005, kdy byla odkoupena spole ností Google Inc. Pokud není ur eno jinak, je v této práci psáno o poslední verzi Android 4.0.4 Ice Cream Sandwich, pro kterou je také vyvinuta popisovaná aplikace.[4] 3.2.2 Java Objektov orientovaný jazyk, který je velice oblíbený pro svou bezpe nost a platformovou nezávislost. Jazyk Java se pouºívá pro vývoj aplikací na platform Android. 3.2.3 JSON JavaScript Object Notation je odleh ený formát pro vým nu dat. Je jednodu²e itelný i zapisovatelný lov kem a snadno analyzovatelný i generovatelný strojov. Je zaloºen na podmno- ºin Programovacího jazyka JavaScript. JSON je textový, na jazyce zcela nezávislý formát, vyuºívající v²ak konvence dob e známé programátor m jazyk rodiny C (C, C++, C#, Java, JavaScript, Perl, Python a dal²ích). Díky tomu je JSON pro vým nu dat opravdu ideálním jazykem.[1] 3.2.4 SQL Structured Query Language je dotazovací jazyk navrºený pro práci s daty v rela ních databázových systémech. P vodn byl zaloºený na rela ní algeb e. Jeho rozsah zahrnuje vkládání dat, dotazování, update a mazání, vytvá ení a úpravy schématu a kontrolu p ístupu k dat m.[7]

3.2. TECHNOLOGIE A ZKRATKY TÝKAJÍCÍ SE PROGRAMOVACÍ ƒásti 7 3.2.5 MySQL MySQL je multiplatformní rela ní databáze navrºená pro komunikaci pomocí jazyka SQL. 3.2.6 PHP Je skriptovací programovací jazyk. Je ur ený p edev²ím pro programování dynamických internetových stránek a webových aplikací nap íklad ve formátu HTML, XHTML i WML. PHP je nejroz²í en j²ím skriptovacím jazykem pro web. Oblíbeným se stal p edev²ím díky jednoduchosti pouºití a bohaté zásob funkcí.[5] 3.2.7 HTTP Hypertext Transfer Protocol je protokol aplika ní vrstvy pro p enos hypertextových informací, který je pouºíván od roku 1990 dodnes. 3.2.8 REST Representational State Transfer je architektura rozhraní, navrºená pro distribuované prost edí, kterou navrhnul a popsal v roce 2000 Roy Fielding(jeden z autor HTTP specikace). Pouºívá se pro jednotný a snadný p ístup ke zdroj m. Zdrojem jsou my²lena data i stavy aplikace, pokud jdou datov popsat.[6] 3.2.9 API Application Programming Interface ozna uje rozhraní pro programování aplikací. Jedná se o knihovnu procedur, funkcí a t íd. V souvislosti s API je v práci nejvíce zmi ována Android API, konkrétn jeho sou asná verze 15 s kódovým ozna ením ICE_CREAM_SANDWICH_MR1. 3.2.10 SDK Software development kit je soubor nástroj pro vývoj aplikací. V této práci bude nejvíce zmi ován Android SDK pomocí jehoº verze 15 byla popisovaná aplikace realizována a testována.

8 KAPITOLA 3. VYMEZENÍ ZÁKLADNÍCH POJM A ZKRATEK

Kapitola 4 Zpracování existujících e²ení V této kapitole se seznámíte se základními moºnostmi práce s hovorem v Androidu, s jejich moºným roz²í ením pomocí aplikací a moºnostmi, které pro telefonní hovor poskytuje API. Dále se podíváme na moºnosti s pouºitím telefonní úst edny a nakonec shrneme výhody a nevýhody tohoto e²ení. 4.1 Moºnosti práce s hovorem v Androidu 4.1.1 Základní funkce opera ního systému: vyto ení ísla manuáln nebo z adresá e manuální odmítnutí hovoru odmítnutí s sms parkování hovoru druhý hovor konferen ní hovor 1 Ovládání základních funkcí b hem hovoru ukazuje obrázek 4.1 4.1.2 e²ení dal²ích funkcí pomocí nalezených aplikací 4.1.2.1 Nahrávání hovoru Nahrávání hovor jiº zdaleka není takovou samoz ejmostí, jako tomu bylo u mobilních telefon d íve. Android tuto moºnost v základním prost edí neobsahuje, a dokonce jádro systému 1 Dá se spustit pouze v situaci, kdy uºivatel zahajující konferenci zaparkuje probíhající hovor nebo konferenci, vytvo í druhý hovor s novým ú astníkem a p idá hovor k zaparkovanému hovoru i konferenci. 9

10 KAPITOLA 4. ZPRACOVÁNÍ EXISTUJÍCÍCH E ENÍ Obrázek 4.1: Ovládání základních funkcí b hem hovoru v systému Android brání vytvo ení podobné aplikaci, coº je vysv tleno v dal²í kapitole o problematice naprogramování aplikace pro práci s telefonním hovorem 4.1.3.3. Zákon Android Inc., respektive Google Inc., sídlí ve stát Kalifornia, proto by se aplikace, které m ºeme naleznout na Google Play 2, m ly ídit zákony státu Kalornie. Stát Kalifornie po- ºaduje potvrzení obou stran s nahráváním hovoru[8], coº je t ºké u aplikace zaru it. e²ení Aplikace, které cht ly být legální, proto implementovaly do hovoru p i nahrávání pípání, jenº m lo nahrávané ú astníky upozornit na skute nost nahrávání hovoru. Pravidlo v²ak nebylo vzhledem k po tu aplikací udrºitelné, proto byla i tato moºnost zakázána. Dnes m ºeme pro Andriod sehnat aplikaci, která funguje tak, ºe uºivatel p i nahrávání hovoru zvolí hlasitý odposlech a oba ú astníci jsou pak nahráváni p es mikrofon telefonu. Toto e²ení v²ak nejde dost dob e pouºít pro uºití ve rm i získání kvalitní nahrávky. Aplikacemi pro nahrávání telefonních hovor nap íc opera ními systémy se nejvíce zabývá spole nost Killer Mobile, která se svoji aplikaci Total Recall snaºí p izp sobit pro v²echny nejnov j²í telefony a opera ní systémy. Jelikoº nahrávání blokuje jádro systému, tak poskytuje v rámci stejné verze Androidu 3.2 více e²ení práv pro jednotlivé tipy mobilních telefon. Na Android 4.0.4. v²ak v tuto dobu je²t neposkytuje ºádné e²ení. 2 Obchod pro stahování aplikací pro Android

4.1. MOšNOSTI PRÁCE S HOVOREM V ANDROIDU 11 4.1.3 Problematika naprogramování aplikace pro práci s telefonním hovorem Pro práci s telefonním hovorem v Androidu slouºí hlavn t ídy balí ku android.telephony PhoneStateListener a TelephonyManager. 4.1.3.1 Odchytávání p íchozího a odchozího hovoru K odchytávání informací o hovorech se pouºívá metoda oncallstatechanged (int state, String incomingnumber) t ídy PhoneStateListener, která je zavolána v p ípad zm ny hodnoty state, jenº v sob nese informaci o stavu telefonu. P etíºením této metody dostaneme aktuální kód stavu telefonu s konstantami: CALL_STATE_IDLE - výchozí hodnota do které se telefon vrací po innosti, ºádná aktivita CALL_STATE_OFFHOOK - existuje alespo jeden hovor, který je vytá ený, aktivní nebo zaparkovaný a ºádné ekající 3 nebo vyzván jící hovory CALL_STATE_RINGING - vyzvání nebo eká nový hovor a ºádný dal²í hovor není aktivní Pomocí porovnání aktuálního a p edchozího stavu proto m ºeme odchytit stavy volání, coº nazna uje kus kódu, pro vypisování informací o hovoru: PhoneState Listener listener = new PhoneStateListener() { @Override public void oncallstatechanged(int state, String incomingnumber) { String statestring = "N/A"; switch (state) { case TelephonyManager.CALL_STATE_OFFHOOK : { if (laststate == TelephonyManager.CALL_STATE_IDLE) { statestring = "zahájeno volani"; } else if (laststate == TelephonyManager.CALL_STATE_RINGING) { statestring = "p ijat hovor od volajiciho"; } else { statestring = "hook to hook"; //nem l by nastat } laststate = TelephonyManager.CALL_STATE_OFFHOOK; } break;.. 3 ƒekající hovor vytvo íme stla ením klávesy pro ovládáni hlasitosti, ímº zru²íme tón vyzván ní.

12 KAPITOLA 4. ZPRACOVÁNÍ EXISTUJÍCÍCH E ENÍ Obdobným zp sobem tak m ºeme zachytit stavy: zahájení volání p ijmutí hovoru vyzván ní nového hovoru ukon ení hovoru odmítnutí hovoru 4.1.3.2 Vytvo ení hovoru Vytvo ení hovoru zaji² uje událost s parametrem ACTION_CALL, kterou vytvo íme jednoduchým zp sobem: public void makecall(string number) { Intent callint = new Intent(Intent.ACTION_CALL); callint.setdata(uri.parse("tel:" + phonenumber)); startactivity(callint); } 4.1.3.3 Nahrávání hovoru Pro nahrávání hovoru by se m la pouºít t ída MediaRecorder z balí ku android.media, které bychom nastavili nahrávání na vstup VOICE_CALL, jenº nahrává sou asn mikrofon a vstup sluchátka telefonu. Bohuºel systém z ejm od verze Android 2.1 Eclair 4 vynutí restart aplikace, pokud spustíme nahrávání s tímto parametrem. O dal²ím e²ení je jiº psáno vý²e - 4.1.2.1, p epnutím nahrávání vstupu na hodnotu MIC, m ºeme nahrávat zvuk z mikrofonu. Hovor bychom museli na telefonu ru n p epnout na hlasitý odposlech. 4.1.3.4 Odmítnutí hovoru a p esm rování hovoru Základní API nepodporuje tyto funkce s hovorem. Android má ale dv dal²í API, které nejsou dostupné p es defaultní Android SDK. Jedná se o internal a hidden API. P i p idání internal API, máme k dispozici metody, s jejichº pomocí bychom mohli implementovat funkce jako blokování hovoru nebo p esm rování. Pouºívání skrytých API ale není doporu eno a nezaru uje se, ºe by aplikace byly funk ní i po aktualizaci systému a ºe systém p i jejich pouºití bude fungovat správn. Proto se jejich pouºití pro jiné neº testovací ú ely nedoporu uje. 4 Záleºí spí²e na verzi jádra, ale ociáln nebyla tato informace vydána.

4.2. MOšNOSTI PRÁCE S HOVOREM S POUšITÍM TELEFONNÍ ÚST EDNY 13 4.2 Moºnosti práce s hovorem s pouºitím telefonní úst edny 4.2.1 Sluºby Telefonní úst edny poskytují celou ²kálu r zných sluºeb. B ºné úst edny disponují 12-128 GSM kanály. Standartními sluºbami jsou: auto clip routing 5 callback 6 fax hlasová schránka IVR 7 konferen ní hovor LCR 8 mobility extension 9 nahrávání hovoru parkování hovoru propojení se standartními emailovými a groupwarovými klienty nap. MS Outlook SMS 10 webové rozhraní úst edny 4.2.2 Ovládání úst edny mobilním telefonem V t²ina telefonních úst eden ukládá nastavení a data svých sluºeb do rela ní databáze. Moºnosti komunikace s úst ednou proto máme p i pouºití telefonu s Androidem dv. Jednak m ºeme data odesílat pomocí datového p enosu nap íklad p es http protokol serveru, který nastaví p íslu²né tabulky v rela ní databázi. Druhou moºností je posílat data pomocí DTMF. V praxi se v t²inou pouºívá datový p enos pro v t²í objem dat nap íklad nastavení vlastností úst edny. DTMF tónem potom nastavujeme d leºité hodnoty p i zahájení volání. Levn j²í variantou pro p enos dat je ur it datový p enos, DTMF ale zaru uje p enos i tam, kde není pokrytí datových sítí 11 a pro malý objem dat je p i navázaném hovoru rychlej²í. 5 GSM brána ukládá informace o odchozích hovorech a p i volání zp t je volající p epojen na linku, ze které byl volán. 6 Po vyto ení ísla úst edny úst edna odmítne hovor a zavolá zp t, volající pak zadá íslo volaného p es DTMF. Toto e²ení zna n sniºuje náklady na volání hlavn p i volání ze zahrani í. 7 Interactive Voice Response - úst edna pomocí DTMF rozpozná zadaný kód a na jeho základ dále pracuje s hovorem 8 Least Cost Routing - volba nejlevn j²í cesty odchozího hovoru. 9 Hovor m ºe sou asn vyzván t na mobilní i pevné lince 10 Odesílání a p íjem sms, odesílání sms p es p es email. 11 GPRS, EDGE, 3G, UMTS, HSDPA, HSUPA, HSPA+, LTE

14 KAPITOLA 4. ZPRACOVÁNÍ EXISTUJÍCÍCH E ENÍ 4.2.3 Volání p es telefonní úst ednu Volání p es telefonní úst ednu je realizováno tak, ºe volající vyto í íslo úst edny a p edá jí parametry hovoru ( íslo, povolení nahrávání, nastavení dal²ích sluºeb atd.). Úst edna pak sama nastaví pot ebné parametry a naváºe hovor. Úst edna m ºe disponovat více telefonními ísly, proto m ºe být zp tný hovor realizován naprosto stejn jako p i pouºití samotného mobilního telefonu. Dále m ºe úst edna na základ uloºených dat a nastavení p epojit hovor kamkoliv v rámci úst edny. Hodn je pouºíván model, kdy je uloºeno, kam které íslo volalo a pokud volá volané íslo zp t, je hovor p epojen na linku s kterou byl uskute n n p echozí hovor. 4.3 Shrnutí obou e²ení Android, potaºmo v²echny ostatní moderní opera ní systémy, jiº nemají tak rozsáhlé moºnosti práce s telefonním hovorem jako tomu bylo d íve u mobilních telefon a prvních opera ních systém. A uº v základní výbav nebo v moºnostech, které nám poskytuje API 12. Srovnávat výhody a nevýhody e²ení je velice obtíºné, protoºe telefonní úst edna disponuje mnoha funkcemi, které Android nemá a ani nejdou implementovat. N které vlastnosti, které by se nám mohly zdát jako výhoda, nap. ºe p i e²ení s Androidem máme v²echna data a nastavení uloºená p ímo v telefonu a p i pouºití úst edny k nim musíme p istupovat p es internet, by se p i jiných poºadavcích na systém mohly jevit nevýhodou a naopak. Proto záleºí hlavn na tom, jaké má uºivatel poºadavky. Výhody pouºití telefonní úst edny: mnoho sluºeb a funkcí pro práci s telefonním hovorem dopl ující sluºby, jako nap íklad ovládání zámku dve í a podobn moºnost levn j²ího volání p edev²ím pro mezistátní hovory nebo z GSM na pevnou linku detailn j²í p ehled o volání data p ístupná online e²ení pro více telefon najednou Nevýhody a obtíºe pouºití telefonní úst edny: po izovací a provozní cena nutnost volání p es úst ednu správa úst edny systém pro práci s daty a ovládání úst edny 12 v porovnání nap íklad s Symbian S60 3rd Edition C++ API z roku 2009 nebo Windows Mobile API z roku 2008

Kapitola 5 Analýza a návrh e²ení mobilní aplikace pro ovládání úst edny Tato kapitola popisuje analýzu problému s návrhem e²ení mobilní aplikace CallMaker pro opera ní systém Android, která zaji² uje volání pomocí telefonní úst edny a její ovládání mobilním telefonem. 5.1 Analýza a návrh e²ení na stran klienta Aplikace je koncipována jako klient-server. Klientem se zde rozumí za ízení s opera ním systémem Android, které vysílá dotazy na server a dostává od serveru data nebo informace o výsledku dotazu. Systém by m l uvaºovat pouºití více za ízení pro jednoho uºivatele, tudíº je velký d raz kladen na ukládání v²ech dat na server. 5.1.1 Funk ní poºadavky automaticky p idat do databáze nového uºivatele zadat vytá ené íslo pomocí klávesnice nebo vyhledat íslo v seznamu kontakt zaloºit nový hovor na úst ednu a pomocí DTMF vloºit íslo volaného nastavení sm rování hovor, hlavn pak jednoduché sm rování na mobilní telefon a telefon v kancelá i implementace jednoduchého nastavení, které se bude automaticky generovat pro dal²í moºné vlastnosti telefonní úst edny 5.1.2 Nefunk ní poºadavky v²echna data uchovávat na stran serveru aplikace musí být implementovaná pro Android 4.0.4 s verzí SDK 15 15

16KAPITOLA 5. ANALÝZA A NÁVRH E ENÍ MOBILNÍ APLIKACE PRO OVLÁDÁNÍ ÚST EDNY rozli²ování android za ízení dle unikátních ísel RESTový p enos dat 5.1.3 Defaultní a dodate né vlastnosti úst edny Kaºdá úst edna, kterou bude aplikace podporovat, bude mít defaultn moºnost nastavení p esm rování (povolení a nastavení ísla) a volbu pro výb r mezi p esm rováním na mobilní telefon a telefon v kancelá i. Dal²í parametry úst edny mohou být libovoln denovány. 5.1.4 Volba pouºitých technologií 5.1.4.1 Vývojové prost edí a za ízení Jako vývojové prost edí bylo vybráno Eclipse Java EE IDE v poslední verzi Indigo s pluginem ADT Plugin for Eclipse. Eclipse jsem volil práv proto, ºe má velice dobrý plugin pro práci s Androidem, který spole nost Android p ímo spravuje a doporu uje na svých referen ních stránkách. Jako dal²í prost edí se naskýtalo Netbeans IDE. Pro spou²t ní a testování aplikace bylo pouºito Android Virtual Device, které je sou ástí SDK. V hlavní ad byl ale pouºit Nexus S s verzí Androidu 4.0.4 a jádra 3.0.8-g6656123. Telefon nemá odblokované ºádné dodate né funkce systému, proto je zaru ena funk nost aplikace na v²ech za ízeních s verzí Androidu 4 a vý². Na star²ích verzích Androidu aplikace nebyla testována, proto její funk nost není zaru ena, ale po úprav manifestu a zkompilování pro niº²í verzi by m la být v po ádku. 5.1.4.2 Formát pro p enos dat Základní poºadavek pro p enos dat byla RESTová architektura formátu p ená²ených dat. I kdyby nebyl vznesen tento poºadavek, z ejm by stejn bylo implementováno toto e²ení. Android API poskytuje funkce pro XML a JSON. Nakonec byl vybrán JSON, protoºe se jeho pouºití zdálo jednodu²²í. Jeho p edností je nezávislost na datovém typu p ená²ených dat a nespornou výhodou jsou i PHP funkce pro práci s JSON objekty, které jsou zmín ny pozd ji. 5.1.5 Pr chod aplikací Pr chod a b h aplikace modeluje diagram aktivit na obrázku 5.1. Zelen jsou ozna eny aktivity p istupující do databáze. Po spu²t ní aplikace se aktualizují automaticky generovaná nastavení a poté se zkontroluje, zda je za ízení vedeno v databázi. Pokud se jedná o první spu²t ní aplikace a za ízení v databázi tak není, vytvo í se nová poloºka v databázi. Dále se aktualizují hodnoty v²ech nastavení a uºivateli se vykreslí hlavní pohled. 5.1.6 Vzhled aplikace Aplikace striktn dodrºuje zásady Android Design[2]. V²echny barvy jsou pouºité z doporu- ené palety barev a ovládací prvky jsou rozmíst né dle tohoto standardu.

5.1. ANALÝZA A NÁVRH E ENÍ NA STRAN KLIENTA 17 Obrázek 5.1: Diagram aktivit 5.1.7 Navigace v aplikaci a seznam pohled Aplikace je rozd lena do t í pohled. 5.1.7.1 Hlavní pohled V hlavním pohledu má uºivatel moºnost pomocí tla ítek vyvolat události pro vyto ení ísla z adresá e nebo pro zadání ísla pomocí klávesnice. Pokud není aktivní jiné p esm rování má moºnost povolit sm rování na telefon v kancelá i. 5.1.7.2 Nastavení p esm rování Po vyvolání pohledu pro nastavení p esm rování z defaultního menu pro nastavení má uºivatel moºnost povolit nebo zakázat p esm rování a nastavit íslo pro p esm rování. Nastavené

18KAPITOLA 5. ANALÝZA A NÁVRH E ENÍ MOBILNÍ APLIKACE PRO OVLÁDÁNÍ ÚST EDNY hodnoty poté m ºe uloºit nebo vrátit zp t bez uloºení pomocí tla ítek. Ob akce ho vrátí do hlavního pohledu. 5.1.7.3 Automaticky generovaná nastavení Po vyvolání pohledu pro ostatní nastavení se zobrazí seznam automaticky generovaných nastavení. Ty slouºí pro nastavení dal²ích libovoln denovaných vlastní úst edny. Pro hodnoty s typem bool se zobrazí Switch s p íslu²ným názvem. Pro hodnoty s typem string se nastaví TextView s p íslu²ným názvem a EditText. Uloºení hodnot se provede tla ítkem. 5.1.8 Identikace za ízení Pro identikaci za ízení je zvoleno výrobní íslo telefonu IMEI (pro ESN a CDMA telefony se vloºí MEID). Sice jde hodnota IMEI zm nit, ale p edpokládá se, ºe tuto aplikaci budou pouºívat uºivatelé, kte í se nebudou o takové v ci pokou²et. Pokud by byl vyºadován n jaký v t²í stupe ochrany, byl by pouºit náhodn generovaný kód, který by byl telefonu p i prvním spu²t ní aplikace p id len a porovnával by se spole n s hodnotou IMEI. 5.2 Analýza a návrh e²ení na stran serveru Server vyhodnocuje dotazy od klienta a na jejich základ vykonává dotazy nad MySQL databází. 5.2.1 Funk ní poºadavky zpracovat dotaz od klienta vykonat p íslu²nou operaci nad databází odeslat zp t poºadovaná data nebo informovat klienta o výsledku operace 5.2.2 Nefunk ní poºadavky databáze MySQL RESTový p enos dat 5.2.3 Volba pouºitých technologií 5.2.3.1 Databáze Technologie databáze byla zadána MySQL, protoºe se tento typ rela ní databáze pouºívá v souvislosti s telefonními úst ednami. Pro testování byla pouºita MySQL databáze ve verzi 5.1.46 na vlastním serverovém po íta i s webovým serverem Apache/2.2.15.

5.2. ANALÝZA A NÁVRH E ENÍ NA STRAN SERVERU 19 5.2.3.2 Technologie serveru Protokolem pro p ená²ení dat byl zvolen HTTP. Tvorbu a p íjem dat v tomto formátu podporuje server i klient. Jako programovací jazyk pro p íjem poºadavk bylo vybráno PHP, jeho pouºití zde bylo nejjednodu²²í a hlavn podporuje funkce pro kódování a dekódování objekt JSON. Jako jazyk pro dotazování do databáze se pouºívá SQL. 5.2.4 Databázový model Databázový model ilustruje obrázek 5.2. Tabulka callmaker uchovává hodnoty jednotlivých poloºek nastavení. V tabulce ustrednainfo jsou pak informace o dodate ných poloºkách automaticky generovaného nastavení. Pro automaticky generovanou poloºku nastavení databáze uchovává její název v databázi callmaker, popis poloºky pro aplikaci v telefonu a typ uchovávaných dat. Obrázek 5.2: Databázový model Tento model uchovává pouze data pro nastavení vlastností spojených s aplikací. Bohuºel nebyla testována na reálné úst edn, jinak by z ejm model obsahoval více poloºek.

20KAPITOLA 5. ANALÝZA A NÁVRH E ENÍ MOBILNÍ APLIKACE PRO OVLÁDÁNÍ ÚST EDNY

Kapitola 6 Realizace Tato kapitola ukazuje realizaci nejd íve na modelu architektury aplikace a dále stru n ji realizaci popisuje pomocí diagramu aktiv. Nakonec jsou blíºe popsány ukázky hlavních bod realizace. 6.1 Realizace na stran klienta 6.1.1 Popis ovládacích komponent Kde to bylo moºné je popis ovládacích komponent realizován pomocí na tení hodnot ze souboru strings.xml, coº slouºí pro jednoduché roz²í ení logalizace do jiných jazyk. 6.1.2 Architektura aplikace Architektura aplikace je znázorn na na obrázku 6.1. Ve vrstv View se nachází v²echny gracké pohledy aplikace. Základní pohled CallMakerActivity pak realizuje i volání, které uºivatel zahájí výb rem z kontakt nebo zadáním ísla ru n. Pohled pro nastavení ísla p esm rování má zp tnou vazbu na základní pohled z d vodu posílání poºadavku na jeho nové p ekreslení p i zm n povolení p em rování 1 Business vrstva nastavuje výchozí hodnoty prvk m ve vrstv View a p ijímá jejich uºivatelem zm n né hodnoty. Ty pak porovnává a v p íslu²ném formátu odesílá poºadavky vrstv Service. Service p ijímá poºadavky od vrstvy Business a zaji² uje komunikaci se serverem, výsledky poºadavk pak odesílá zp t Business vrstv. 6.1.3 Class diagram Realizaci t íd ukazuje class diagram na obrázku 6.2. T ídy CallMakerActivity, Setforwardactivity a Settingsactivity slouºí pro nastavení hodnot, které se ukládají do instance t ídy Update(tu popí²u podrobn pozd ji v sekci 6.1.5). T ída PutNumberActivity slouºí pro ru ní zadání telefonního ísla. Ostatním t ídám se podrobn v nuji v dal²ím textu. 1 Pokud je p esm rování povoleno, vykresluje se, kam je p esm rování nastaveno. P i jeho zakázání se vykresluje Switch pro nastavení p esm rování do kancelá e. 21

22 KAPITOLA 6. REALIZACE Obrázek 6.1: Architektura aplikace 6.1.4 Odesílání a p ijímání poºadavk na server Vytvá ení, odesílání a p ijímání HTTP poºadavk má v Androidu povolena pouze t ída AsyncTask a její potomci. Ve t íd AsyncTask <Object params, Object progress, Object result> jsou implementovány t i základní globální prom nné, které musí být potomky t ídy Object. První dv jsou pole a slouºí pro uchovávání vstupních parametr a pr b hu operace, dal²í je prom nná pro uloºení výsledku, jak je nazna eno vý²e. V konstruktoru vytvo í t ída AsyncTask asynchronní vlákno s kterým m ºeme pracovat pomocí t ech metod: protected Object doinbackground(object... params) - hlavní funkce vlákna, ve které máme k dispozici pole vstupních parametr params a její výsledek vrací do prom nné, kterou jsem vý²e pojmenoval jako result protected void onprogressupdate(object... progress) - p etíºením metody publishprogress(object progress) ve funkci doinbackground zavoláme tuto metodu, kterou m - ºeme pouºít pro zobrazení pr b hu operace

6.1. REALIZACE NA STRAN KLIENTA 23 Obrázek 6.2: Class diagram protected void onpostexecute(object result) - tato funkce se zavolá po dokon ení operace ve funkci doinbackground Ve své aplikaci jsem t ídu AsyncTask roz²í il pomocí t ídy DbTasker následovn : public class DbTasker extends AsyncTask<String, Integer, HttpResponse> Vstupní data a klí e pro ovládání jsou p edávány prom nnou typu String, pr b h aplikace nezobrazuji, protoºe se jedná o p enos malých objem dat, t ída vrací objekt typu HttpResponse. V hlavní funkci vlákno na základ p edaných parametr vytvo í objekt JSON, který ode²le na p íslu²nou url adresu. Jako výsledek pak vrací odpov od serveru.

24 KAPITOLA 6. REALIZACE 6.1.5 Uchovávání a aktualizace nastavení Práci s vlastnostmi nastavení zaji²tuje t ída Update. Jsou v ní uloºené základní parametry úst edny (povolení p esm rování, íslo pro p esm rování a volba mezi mobilním telefonem a telefonem v kancelá i) a dále obsahuje pole instancí t ídy menuitem. Ve t íd menuitem jsou denovány parametry automaticky generované poloºky menu: String item - její název v databázi String label - popis poloºky pro GUI String valuetype - datový typ hodnoty Dále t ída obsahuje objekty TextView, EditText a Switch pro zobrazení v GUI. T ída Update je implementovaná podle vzoru Signleton, ostatní t ídy p istupují pouze k její instanci, která se sama vytvo í p i prvním volání. Metody u kterých by mohlo docházet ke kolizím p i volání poºadavk na server jsou navíc typu synchronized. Toto e²ení je zvoleno z d vodu pozd j²ích roz²í ení aplikace a p edejití kolizím p i vícenásobném p ístupu na server, protoºe poºadavky vykonávají asynchronní vlákna. T ída samotné odesílání a p ijímání poºadavk realizuje p es DbTasker. Pro nastavení dat slouºí funkce getupdate(). Po jejím zavolání se nejd íve nastaví poloºky v poli menuitem a následn se nastaví hodnoty pro základní parametry úst edny i poloºky menuitem. Pokud není nalezeno id za ízení v databázi, t ída vy²le poºadavek na vytvo ení nového uºivatele. 6.1.6 Vyhledání telefonního ísla v kontaktech Pro nalezení uºivatele se vyuºívá defaultní událost ACTION_PICK typu CONTENT_TYPE z balí ku Contacts, která v parametru URI vrací ádek dat z adresá e. Tento ádek bohuºel neobsahuje íslo, proto z n j získáme ID uºivatele a informaci o tom, zda tento kontakt obsahuje telefonní íslo. Podle ID pak program prohledá databázi kontakt a vytvo í pole ísel. Pokud pole obsahuje více neº jedno íslo, uºivatel pomocí AlertDialogu vybere pro které íslo se má vytvo it hovor. 6.1.7 Nastavení id a tvorba telefonního hovoru Id (ve v t²in p ípad IMEI) je nastaveno pomocí metody getdeviceid() t ídy Telephony- Manager. Volání zaji² uje metoda makecall(string number), která p idá za íslo úst edny a znak,(jenº denuje pauzu 50ms mezi telefonním íslem a DTMF signálem) volané íslo jako DTMF parametr.

6.2. REALIZACE NA STRAN SERVERU 25 6.2 Realizace na stran serveru Serveru p ijde poºadavek na p íslu²ný skript od klienta. V p ípad poºadavku na data se p ipojí k databázi a vybere pomocí SQL data z databáze, jinak vrací potvrzovací znak [1]. P em ní hlavi ku na typ JSON a ode²le pole JSON s návratovými hodnotami. Ukázka update.php pro na tení dat z databáze, pokud id není nalezeno v databázi ode²le se [1] jako signál pro vytvo ení nového uºivatele. <?php $json = file_get_contents('php://input'); $obj = json_decode($json); mysql_connect("localhost","tomaass","*****"); mysql_selectdb("tomaass"); $sql = mysql_query("select * FROM callmaker WHERE id='".$obj->{'id'}."'"); $row=mysql_fetch_assoc($sql); if($row){ print(json_encode($row)); }else{ $posts = array(1); header('content-type: application/json'); print json_encode(array('id'=>$posts)); } mysql_close();

26 KAPITOLA 6. REALIZACE

Kapitola 7 Testování Testování aplikace je velice d leºité pro odlazení chyb, na které nebylo naraºeno v pr b hu analýzy a vývoje. Aplikace byla testována nejprve pomocí unit test, dal²í fáze test probíhala na oslovených respondentech. 7.1 Unit testy Unit testy jsou d leºité hlavne pro dal²í roz²i ování aplikace, kdy po p idání nové funkcionality m ºeme ov it, zda negativn neovlivnila p edchozí e²ení. Pro testování byl vyuºit testovací framework, který poskytuje API. V n m byl vytvo en testovací projekt, který kontroluje správnost komunikace se serverem. 7.1.1 Zp sob testování 7.1.1.1 ƒtení z databáze V prvním testu je p ístroji p i azeno pevn denované ID a kontroluje se, zda pro n j na t správnou hodnotu z tabulky, kterou je nastavena pro toto ID v databázi. public void testreaddb() throws IllegalStateException, InterruptedException, ExecutionException, IOException, JSONException{ mactivity.getupdate().setid("12345"); mactivity.getupdate().getupdate(); assertequals("123456", mactivity.getupdate().getforward_number()); } 7.1.1.2 Zápis do databáze Dal²í testy kontrolují zápis do databáze. Nejd íve je nastaven testovací et zec do ísla pro p esm rování, ten je následn odeslán do databáze. Poté se aktualizují data z databáze a nastavený et zec je porovnán s nov získaným. 27

28 KAPITOLA 7. TESTOVÁNÍ public void testwriteandread() throws IllegalStateException, InterruptedException, ExecutionException, IOException, JSONException{ String forwardnumber = "00000"; mactivity.getupdate().setforward_number(forwardnumber); mactivity.getupdate().getupdate(); assertequals(forwardnumber, mactivity.getupdate().getforward_number()); } V dal²ím testu je kontrolován zápis logické hodnoty. Op t pouºijeme p esm rování a jeho prom nnou pro povolení p esm rování. Její hodnotu aktualizujeme ze serveru, znegujeme a uloºíme zp t na server. Poté aktualizujeme hodnoty ze serveru a porovnáme zapsanou a získanou hodnotu. public void testbool() throws IllegalStateException, InterruptedException, ExecutionException, IOException, JSONException{ mactivity.getupdate().getupdate(); boolean tmp = mactivity.getupdate().isforward(); tmp =!tmp; mactivity.getupdate().setforward(tmp); mactivity.getupdate().getupdate(); assertequals(tmp, mactivity.getupdate().isforward()); } 7.1.2 Výsledky test V²echny testy byly provedeny na telefonu a úsp ²nost byla 100%. Na virtuálním za ízení nejde testování spustit. 7.2 Usability test Toto testování odhaluje hlavn, zda bylo dob e, jednodu²e a funk n navrºeno gracké rozhraní. 7.2.1 Zp sob testování Pro testování uºivateli byli vybráni t i respondenti: 1. muº 23 let, student, technické vzd lání, ºádné zku²enosti s opera ním systémem Android 2. muº 25 let, student, technické vzd lání, vlastní telefon se star²í verzí Androidu 3. ºena 27 let, fyzioterapeutka, vysoko²kolské vzd lání netechnického sm ru, ºádné zku- ²enosti s opera ním systémem Android a dotykovými telefony Respondent m byly zadány t i následující úkoly:

7.3. ZÁV R TESTOVÁNÍ 29 1. Nastavte p esm rování na íslo 602 123 456. 2. Vypn te p evzetí hovoru. 3. Zavolejte osob máma. 7.2.2 Výsledky testování 1. respondent díky své neznalosti s opera ním systémem Android nemohl najít standartní tla ítko pro vstup do menu. Poté nem l problém splnit v²echny úkoly. 2. respondent splnil bez obtíºí v²echny úkoly. 3. respondentka nemohla najít ovládání vstup do menu a zastavila se u ovládání switche. Nakonec ale zvládla v²echny úkoly. 7.3 Záv r testování Testováním se dá ov it funk nost p ístupu do databáze. Zárove testováním na uºivatelích bylo zji²t no, ºe je aplikace uºivatelsky p átelská a rozhraní bylo správn navrºeno.

30 KAPITOLA 7. TESTOVÁNÍ

Kapitola 8 Záv r 8.1 Zhodnocení cíl V této práci jsem se snaºil shrnout v²echny své poznatky okolo telefonního hovoru a hlavn práce s navázaným telefonním hovorem na Androidu. Cht l jsem, aby práce mohla poslouºit komukoliv, kdo by se rychle pot eboval zorientovat v této problematice a zjistit jaké má dnes v tomto ohledu opera ní systém Android moºnosti. Dále jsem se pokusil v²echny nerealizovatelné nedostatky vy e²it p idáním telefonní úst edny. Nakonec jsem pro telefonní úst ednu navrhl a realizoval aplikaci, která spl uje zadání mého projektu a je v ní vy e²ena roz²i itelnost vlastností úst edny bez nutnosti zásahu do samotné aplikace. Doufám, ºe se aplikace poda í nasadit na reálné e²ení. 8.2 Moºné pokra ování práce Pokra ování práce bude dozajista nasazení aplikace na reálné e²ení. Dle hodnot testování v provozu pak budou zji²t ny pot ebné informace pro její dal²í vývoj. Nap íklad verzování a asový interval pro aktualizaci hodnot, která nyní zdrºuje systém. Dále p ipadá v úvahu nasazení aplikace na nestandartní e²ení, ímº by mohla být nap íklad úst edna ovládající vstupní dve e a podobn. 31

32 KAPITOLA 8. ZÁV R

Literatura [1] Úvod do JSON [online]. [cit. 18. 05. 2012]. Dostupné z: <http://www.json.org/ json-cz.html>. [2] Android Design [online]. [cit. 24. 05. 2012]. Dostupné z: <http://developer.android. com/design/index.html>. [3] Jan ehák. DTMF - fámy a skute nost [online]. 1998. [cit. 18. 05. 2012]. Dostupné z: <http://www.hw.cz/teorie-a-praxe/dokumentace/dtmf-famy-a-skutecnost. html>. [4] LEE, W.-M. Beginning Android TM Application Development. Wiley Publishing, Inc., 2011. [5] P isp vatelé Wikipedie. PHP [online]. [cit. 19. 05. 2012]. Dostupné z: <http://cs. wikipedia.org/wiki/php>. [6] P isp vatelé Wikipedie. Representational state transfer [online]. 2012. [cit. 24. 05. 2012]. Dostupné z: <http://en.wikipedia.org/wiki/representational_state_transfer>. [7] P isp vatelé Wikipedie. SQL [online]. [cit. 19. 05. 2012]. Dostupné z: <http://en. wikipedia.org/wiki/sql>. [8] Zákonodárci USA. PENAL CODE SECTION 630-638 [online]. 1994. [cit. 18. 05. 2012]. Dostupné z: <http://www.leginfo.ca.gov/cgi-bin/displaycode?section= pen&group=00001-01000&file=630-638>. 33

34 LITERATURA

P íloha A Instala ní a uºivatelská p íru ka A.1 Instalace aplikace CallMaker Nejd íve musíme zkopírovat soubor CallMaker.apk 1 do pam ti telefonu. P ed spu²t ním instalace je pot eba mít v telefonu povolenou instalaci aplikací z neznámých zdroj (Nastavení - Systémová nastavení - Zabezpe ení - Neznámé zdroje). Dále najdeme soubor pomocí n jakého adresá ového manaºera (nap. Astro) v telefonu a provedeme instalaci. A.2 Spu²tení a navigace v aplikaci A.2.1 První spu²t ní aplikace Pokud se jedná o první spu²t ní aplikace, vytvo í se automaticky záznam o za ízení v databázi a nastaví se defaultní hodnoty pro nastavení. A.2.2 Hlavní pohled Po spu²t ní aplikace se zobrazí hlavní pohled - obrázek B.1. V n m je moºnost vyvolat událost pro zavolání osoby z adresá e, vyvolat událost pro zadání volaného ísla ru n a pokud není aktivováno p esm rování, nastavit p ijmutí hovoru v kancelá i - obrázek B.2. A.2.3 Zavolání osoby z adresá e Pro výb r osoby se zobrazí defaultní vyhledávání v adresá i kontakt - obrázek B.3. Pokud má kontakt více ísel, nabídne se dialog s výb rem na které se má zavolat - obrázek B.4. A.2.4 Zadání telefonního ísla ru n ƒíslo se zadá do textového pole a stisknutím klávesy se sluchátkem se aktivuje hovor - obrázek B.5. 1 nachází se na p iloºeném CD 35

36 P ÍLOHA A. INSTALAƒNÍ A UšIVATELSKÁ P ÍRUƒKA A.3 Nastavení Menu pro nastavení se zobrazí po stisknutí tla ítka nastavení - obrázek B.6. Zde je moºnost vybrat nastavení p esm rování nebo ostatní nastavení úst edny. A.3.1 Nastavení p esm rování P esm rování se povoluje a zakazuje pomocí switche, pod ním je moºné nastavit íslo, kam se má hovor p esm rovat - obrázek B.7. Tla ítky uloºit a zru²it se vykoná p íslu²ná akce a zobrazí se hlavní pohled. Pokud jsme aktivovali p esm rování, zobrazí se v hlavním pohledu, kam je volání p esm rováno - obrázek B.8 A.3.2 Ostatní nastavení V ostatním nastavení se nacházejí v²echna dal²í nastavení, která úst edna podporuje. Skládají se z posuvných switch a textových vstup - obrázek B.9. Nastavení se ukládá tla ítkem.

P íloha B Ukázka uºivatelského rozhraní Obrázek B.1: Hlavní pohled 37

38 P ÍLOHA B. UKÁZKA UšIVATELSKÉHO ROZHRANÍ Obrázek B.2: Nastavení p esm rování do kancelá e Obrázek B.3: Výb r osoby v adresá i

39 Obrázek B.4: Výb r pro více ísel v kontaktu Obrázek B.5: Zadání telefonního ísla ru n

40 P ÍLOHA B. UKÁZKA UšIVATELSKÉHO ROZHRANÍ Obrázek B.6: Menu nastavení Obrázek B.7: Nastavení p esm rování

41 Obrázek B.8: Informace o p esm rování Obrázek B.9: Ostatní nastavení

42 P ÍLOHA B. UKÁZKA UšIVATELSKÉHO ROZHRANÍ

P íloha C Obsah p iloºeného CD Na CD se nachází php skripty pro server, aplikace CallMaker a project TestCall pro unit testování. Ve sloºce text je samotná bakalá ská práce a obrázky pouºité v práci. +---app +---AndroidServer +---CallMaker \---TestCall CallMaker.apk \---text \---pict sorejtom_2012bach.pdf 43