Sunteți pe pagina 1din 45

UNIVERSITATEA BABE BOLYAI

FACULTATEA DE MATEMATIC I INFORMATIC






LUCRARE DE LICEN
Interaciunea la distan ntre dispozitive mobile
(Mobile remote interaction)





Conductor tiinific Absolvent
Lect. Dr. GREBL Horea Lache Rare-Codrin
(Universitatea Babe-Bolyai)


Cluj-Napoca
2014
2



Cuprins


1 Introducere .......................................................................................................................................... 3
2 Descrierea problemei ........................................................................................................................ 5
3 Abordri existente/posibile .............................................................................................................. 7
3.1 SMS..................................................................................................................................................... 7
3.2 Bluetooth ......................................................................................................................................... 11
3.3 Infrarou .......................................................................................................................................... 14
3.4 Wi-Fi ................................................................................................................................................. 17
4 Descrierea soluiei ........................................................................................................................... 23
4.1 Cazuri de utilizare.......................................................................................................................... 23
4.2 Platforma Android ......................................................................................................................... 28
4.3 Detalii de implementare ................................................................................................................ 37
5 Concluzii i posibiliti de extindere ........................................................................................... 41
6 Referine bibliografice .................................................................................................................... 44


3



Capitolul 1
Introducere

n ultimele decenii, odat cu dezvoltarea tot mai rapid a tehnologiei, piaa a nceput s
se concentreze din ce n ce mai mult n jurul conceptului de smartphone (telefon mobil
multimedia multifuncional, conectat la o reea GSM sau UMTS). Este o tendin
normal, avnd n vedere faptul c traficul de date a devenit tot mai rapid i mai
accesibil din punct de vedere al costurilor, smartphone-urile oferind aproape toate
funcionalitile cu care este obinuit un utilizator de computer (agend, calendar,
navigare GPS, e-mail, browser, editor de text, minicalculator, aparat foto-video i chiar
soft-uri de specialitate precum Adobe Photoshop). Treptat, mijloacele clasice de
comunicare ntre dispozitivele mobile sunt tot mai puin utilizate, locul lor fiind luat de
aplicaii ce comunic via Internet. De exemplu, utiliznd Viber sau Skype, se poate
vorbi gratuit oriunde n lume, ba mai mult, se pot iniia apeluri video sau conferine.
WhatsApp, Facebook Messenger sau Snapchat substituie SMS-urile i MMS-urile,
avnd de asemenea o suit de funcionaliti extra. n sfrit, dac ne referim la
schimbul de fiiere, Bump este o alternativ mai rapid i cu o limit de dimensiune
mai mare n comparaie cu anticul infrarou sau cu Bluetooth-ul.
Cu toate acestea, cel puin la noi n ar, exist nc numeroase zone fr acoperire de
Internet, fapt care impiedic renunarea total la vechile mijloace de interaciune. Un alt
motiv ar fi consumul foarte mare de baterie cauzat de traficul de mare vitez (prin noile
generaii de tehnologie telefonic mobil 3G i 4G).
Acest lucrare i propune s trateze mijlocele de interaciune ntre dispozitiviele mobile
precum i controlul de la distan al unui dispozitiv prin intermediul altuia (nu
neaprat smartphone). Structura lucrrii este prezentat n continuare:
4

Capitolul 1: Introducere conine o scurt introducere n problematica
interaciunii dintre dispozitivele mobile i a tehnologiilor existente la momentul
actual precum i o descriere sumar a fiecrui capitol n parte;
Capitolul 2: Descrierea problemei prezint motivul alegerii temei, detalierea
sarcinilor de lucru precum i cteva informaii despre conceptul de
redirecionare a apelurilor ctre un alt numr de telefon;
Capitolul 3: Abordri existente/posibile cuprinde o prezentare detaliat a
mijloacelor existente de interaciune (SMS, Infrarou, Bluetooth i WiFi);
Capitolul 4: Descrierea soluiei aici se vor regsi informaii despre platforma
Android (accentul fiind pus pe noiuni specifice folosite n dezvoltarea
aplicaiei), cazuri de utilizare i detalii de implementare;
Capitolul 5: Concluzii i posibiliti de extindere cuprinde o comparare a
mijloacelor de interaciune wireless i descrie iteraiile gndite pentru viitoarele
versiuni ale aplicaiei;
Capitolul 6: Referine bibliografice













5


Capitolul 2
Descrierea problemei

Atunci cnd dou dispozitive vor s comunice ntre ele, trebuie nti s agreeze asupra
unui set de reguli comun. Primul punct al acordului este la nivel fizic: stabilirea
conexiunii, pe fir sau wireless. Apoi, dimensiunea maxim a datelor trimise la un
moment dat: porturile seriale, de exemplu, trimit date de cte un bit n timp ce porturile
paralele pot trimite mai muli bii odat. n fine, ultimul lucru de care dispozitivele
trebuie s in cont este interpretarea fluxului de bii, pentru a se asigura c mesajul
primit este acelai cu cel trimis. Toate acestea conduc la dezvoltarea unui set de comenzi
cunoscut sub numele de protocol.
Ideea aplicaiei dezvoltate n partea practic a lucrrii a aprut dintr-o necesitate. Mi s-a
ntmplat de nenumrate ori s mi uit telefonul ntr-un loc la care s nu mai am acces
pentru cteva ore (de exemplu acas sau n main) i s pierd apeluri importante.
Avnd n vedere c operatorii de telefonie mobil permit redirecionarea apelurilor
ctre un alt numr de telefon fr un tarif suplimentar, soluia a venit destul de natural.
Dei nu doresc s intru la acest moment n detalii de implementare, voi anticipa puin
coninutul capitolului 4 explicnd pe scurt conceptul de redirecionare i cum anume
funcioneaz el:
Tehnic, pentru redirecionarea necondiionat a apelurilor spre un alt dispozitiv se
apeleaz *21* Numr de deviere #, ##21# pentru dezactivare iar pentru verificarea
statusului #21#.
Putem ns seta ca redirecionarea s se realizeze doar n anumite condiii:

6

Situaie Activare Dezactivare Status
Telefonul nu poate fi localizat **62* Numr de deviere # ##62# *#62#
Linia este ocupat **67* Numr de deviere # ##67# *#67#
Apelul este nepreluat **61* Numr de deviere # ##61# *#61#

Aceste coduri sunt universale i funcioneaz pentru majoritatea zonelor i furnizorilor de
telefonie mobil, excepie fcnd doar continentul nord-american i compania Sprint Nextel [5].
Astfel, singurul lucru rmas de fcut era s iniiez, de la distan, prin intermediul unui
alt dispozitiv (dup cum am precizat anterior, nu neaprat smartphone), un astfel de
apel special. Singura problem este c nu toate platformele permit acest lucru. Dup
cum am vzut puin mai sus, pentru a realiza orice fel de redirecionare trebuie apelat
o succesiune de simboluri i cifre care ncepe cu *. iOS-ul, din motive ce in de
securitatea clienilor (multe numere cu supratax au un astfel de format), nu permite ca
un astfel de eveniment s se produc automat, chiar dac utilizatorul a dat n prealabil
aplicaiei permisiunea de a iniia automat apeluri. Acesta este motivul pentru care
proof of concept-ul este realizat pentru platforma Android, mult mai customizabil i
puin restrictiv.









7


Capitolul 3
Abordri existente/posibile

Acest capitol i propune s descrie amnunit cele mai importante dintre mijloacele
existente de interaciune ntre dispozitivele mobile i s compare principalele trei
tehnologii wireless: Infrarou, Bluetooth i WiFi.

3.1 SMS
SMS (Short Message Service) este un serviciu de mesaje text ce funcioneaz pe telefon,
web sau alte sisteme de comunicaii mobile. Acesta utilizeaz protocoale standardizate
de comunicare pentru a permite telefoanelor fixe i mobile s fac schimb de mesaje
text. SMS-urile, aa cum se folosesc pe dispozitivele moderne, i afl originea n
radiotelegrafie, unde pager-ele memo radio foloseau astfel de protocoale. Serviciul a
fost definit n 1985, fcnd parte dintr-o serie de standarde impuse de Sistemului Global
pentru Comunicaii Mobile (GSM), ca un mijloc de a trimite mesaje de pn la 160
caractere. Dei cele mai multe astfel de mesaje sunt trimise ntre telefoanele mobile,
suportul pentru acest serviciu s-a extins i include n prezent i alte tehnologii mobile ca
de exemplu reelele ANSI CDMA i Digital AMPS, precum i reelele fixe i prin satelit.
Aa cum am menionat mai sus, un SMS poate conine pn la 160 caractere, n cazul n
care fiecare caracter este de 7 bii conform alfabetului implicit; mesajele de 8 bii
maxim 140 de caractere nu sunt de obicei interpretate de telefoane ca fiind de tip text
ci mai degrab ca imagini, sunete de apel sau setri de WAP/GPRS; mesajele de 16 bii
maxim 70 de caractere) sunt utilizate pentru mesaje text de tip Unicode(UCS2) ce conin
mai multe simboluri i caractere speciale. Exist aa numitele mesaje de clas zero care
nu se salveaz n csua de intrri ci apar direct deschise pe ecranul telefonului; astfel
8

de mesaje nu sunt folosite n general de utilizatori ci de operatorii de telefonie mobil
pentru a face ct mai vizibile eventualele alerte trimise.
Exist dou modaliti n ceea ce privete trimiterea i recepionarea mesajelor: modul
text i modul PDU (Protocol Description Unit). Modul text (indisponibil pe unele
telefoane) este doar o encodare a fluxului de bii reprezentat de modul PDU. Alfabetele
pot diferi i exist mai multe alternative de afiare a unui SMS, n funcie de encodarea
aleas. Cele mai comune opiuni sunt "PCCP437", "PCDN", "8859-1", "IRA" i "GSM".
Atunci cnd mesajul este citit pe calculator, se poate comuta simplu ntre acestea
folosind comanda AT + CSCS. Dac ns este citit pe telefon, acesta va alege automat cel
mai potrivit mod de interpretare al biilor. O aplicaie capabil s citeasc mesajele
primite poate utiliza modul text sau modul PDU. Dac este selectat modul text, aplicaia
este limitat de opiunile de encodare presetate. n unele cazuri ns, asta nu este
suficient; folosind modul PDU, orice codificare poate fi implementat [1].

Primirea unui mesaj folosind modul PDU
irul de bii PDU conine, pe lang mesajul propriu-zis, o mulime de informaii despre
expeditor precum centrul su de servicii SMS sau ora exact a trimiterii mesajului i este
structurat n octei hexa-zecimali sau semi-octei zecimali. Urmtorul ir de caractere
reprezint ceea ce se primete la trimiterea mesajului hellohello:
07917283010010F5040BC87238880900F10000993092516195800AE8329BFD4697D9EC37
Aceast secven de octei este compus din trei pri: primul octet indic lungimea
informaiei SMSC (Short Message Service Center), urmtorii apte reprezint informaia
SMSC iar restul compun aa numita parte SMS_DELIVER.
Octei Descriere
07 Lungimea informaiei SMSC (n acest caz 7 octei);
91
Tipul de adres al SMSC (91 reprezint formatul internaional
pentru numere de telefon);
72 83 01 00 10 F5
Numrul de telefon al centrului de servicii (n semi-octei
zecimali): +27381000015;
04 Primul octet al mesajului SMS_DELIVER;
9

0B Lungimea numrului de telefon expeditor (0B hex = 11 dec);
C8 Tipul de adres al numrului expeditor;
72 38 88 09 00 F1 Numrul expeditor (n semi-octei zecimali), cu F la final;
00 TP-PID Identificatorul protocolului;
00 TP-DCS Sistemul de codificare a datelor;
99 30 92 51 61 95 80 TP-SCTS Ora expedierii (semi-octei);
0A
TP-UDL Lungimea datelor utilizatorului i lungimea
mesajului; Cmpul TP-DCS indic date de 7 bii aa c aici
lungimea este reprezentat de numrul de septei (0A hex = 10
dec). Dac acesta ar fi indicat date de 8 bii, lungimea ar fi fost
egal cu numrul de octei (9).
E8329BFD4697D9EC37 TP-UD Mesajul hellohello.

Toi octeii de mai sus sunt hexa-zecimali, cu excepia numrului centrului de servicii, a
numrului expeditor i a timestamp-ului care sunt semi-octei zecimali. Ultima parte
(cea care conine mesajul) este format din octei hexa-zecimali dar acetia reprezint de
fapt date pe 7 bii. Semi-octeii sunt zecimali i astfel, de exemplu, numrul
expeditorului se obine simplu prin inversarea primilor 4 bii cu ultimii n cadrul byte-
ului (72 38 88 09 00 F1 devine 27 83 88 90 00 1F). Lungimea numrului de telefon este
impar (11) aa ca a fost adugat un F la final pentru a se forma corespunztor octeii.
Dac analizm timestamp-ul, observm c primele 6 caractere reprezint data,
respectiv 29 martie 1999, urmtoarele 6 timpul (15:16:59) iar ultimele dou specific
fusul orar [6].

Expedierea unui mesaj folosind modul PDU
AT + CMGF = 0 Seteaz modul PDU
AT + CSMS = 0 Verific dac modemul suport comenzi de tip SMS
AT + CMGS = 23 Trimite mesajul de 23 octei (excluznd cele doua zerouri iniiale)
0011000B916407281553F80000AA0AE8329BFD4697D9EC37 [6]
10

Octei Descriere
00
Lungimea informaiei SMSC. Aici lungimea este 0 ceea ce
nseamn c trebuie folosit SMSC-ul stocat n memoria
telefonului; acest octet este opional pe unele telefoane trebuie omis
(folosindu-se SMSC-ul din memorie);
11 Primul octet al mesajului SMS-SUBMIT;
00
TP-Message-Reference valoarea 00 permite telefonului s
stabileasc automat numrul de referin al mesajului;
0B Lungimea numrului de telefon (0B hex = 11 dec);
91
Tipul de adres: 91 reprezint formatul internaional pentru
numere de telefon;
6407281553F8
Numrul de telefon (n semi-octei zecimali): +46708251358; la
fel ca nainte, lungimea este impar (11) aa ca a fost adugat
un F la final pentru a se forma corespunztor octeii;
00 TP-PID Identificatorul protocolului;
00
TP-DCS Sistemul de codificare a datelor: acest mesaj este
encodat conform alfabetului implicit pe 7 bii. Dac am avea
04 n loc de 00, cmpul TP-User-Data ar fi interpretat pe 8
bii n loc de 7 (acest identificator se utilizeaz de obicei pentru
mesageria inteligent smart messaging);
AA
TP-Validity-Period Perioada de valabilitate a mesajului: AA
nseamn 4 zile; acest octet este de asemenea opional;
0A
TP-User-Data-Length Lungimea datelor utilizatorului i
lungimea mesajului; Cmpul TP-DCS indic date de 7 bii aa c
aici lungimea este reprezentat de numrul de septei (0A hex =
10 dec). Dac acesta ar fi indicat date de 8 bii, lungimea ar fi
fost egal cu numrul de octei (9);
E8329BFD4697D9EC37 TP-User-Data Aceti octei reprezint mesajul hellohello.




11

3.2 Bluetooth
Bluetooth-ul este un set de specificaii (un standard) ce faciliteaz schimbul de date pe
distane scurte (prin unde radio cu lungimea de und scurt ntre 2.402 i 2.480 GHz)
ntre dispozitive fixe i mobile i construirea reelelor personale fr fir (PAN personal
area network).

Inventat de furnizorul de telecomunicaii Ericsson n 1994, tehnologia a fost conceput
iniial ca o alternativ wireless a cablurilor de date RS-232 i poate interconecta mai
multe dispozitive, depind problemele de sincronizare (dat fiind faptul c exist
numeroase dispozitive ce folosesc frecvene ISM, asigurarea c acestea nu vor interfera
cu Bluetooth-ul a constituit o parte esenial a procesului de proiectare) [7].
Bluetooth-ul duce practic ideea de reea local (small-area network) la alt nivel prin
eliminarea necesitii de intervenie a utilizatorului i meninerea puterii de transmisie
la un nivel extrem de sczut pentru a economisi energia bateriei. Pentru a ntelege mai
bine, s ne imaginm urmtorul lucru: primii un apel pe telefonul dumneavostr chiar
n momentul n care ai parcat n faa casei; i spunei s revin n cinci minute pentru a
avea timp s intrai i s v lsai lucrurile; de ndat ce intrai n cas, harta pe care ai
primit-o pe telefonul mobil de la sistemul de navigaie al mainii este trimis ctre
computerul dumneavoastr deoarece telefonul a captat semnal Bluetooth de la PC i a
trimis automat datele ce erau desemnate pentru transfer; cinci minute mai trziu, cnd
Clasa
Puterea maxim permis
(mW)
Puterea maxim permis
(dBm)
Raza
(aproximativ)
1 100 mW 20 dBm ~100 metri
2 2,5 mW 4 dBm ~15 20 metri
3 1 mW 0 dBm ~10 metri
12

persoana revine, telefonul fix va suna n locul celui mobil; dei respectivul a apelat
acelai numr, fix-ul a captat semnal de la mobil i a redirecionat apelul n mod
automat realiznd c suntei acas; fiecare astfel de semnal emis sau captat de mobilul
dumneavoastr consum un singur miliwatt, nesemnificativ pentru energia bateriei.
Observaie: toate dispozitivele de care am vorbit n exemplul de mai sus trebuie s fie compatibile
cu tehnologia Bluetooth pentru a se putea interconecta.
n esen, Bluetooth-ul este un standard de reea ce funcioneaz pe dou niveluri: cel
fizic (frecvene radio) i cel de protocol, unde dispozitivele trebuie s tie cnd anume
se trimit biii, ci pot fi trimii deodat i mai ales s se asigure c mesajul primit este
acelai cu cel trimis.
Avantajele acestei tehnologii ar fi: independenta de cabluri (wireless), costurile reduse i
automatismul. Primele dou sunt bifate i de ctre comunicaiile prin infrarou, care
ns nu sunt capabile s interconecteze mai mult de dou dispozitive (one to one
technology). Bluetooth-ul a fost gndit s rezolve problemele cu care se confruntau
sistemele bazate pe infrarou. Vechiul standard 1.0 avea o vitez maxim de transfer de
un megabit pe secund (1 Mbps); de la versiunea 3.0 se pot ns gestiona pn la 24
Mbps [9].
Aminteam mai sus c o parte important a procesului de proiectare a reprezentat-o
evitarea interferenelor cu alte dispozitive. Una dintre modalitile prin care acest lucru
se realizeaz sunt semnalele foarte slabe (~1 mW) ce se trimit. Prin comparaie, cele mai
puternice telefoane mobile pot transmite semnale de 3 wai, adic de 3000 de ori mai
mult. Puterea sczut limiteaz raz de actiune la aproximativ 10 metri, suficieni ns
pentru a controla dispozitive din camere diferite, avnd n vedere c pereii nu
blocheaz undele. Se pot interconecta 8 dispozitive n aceeai raz de 10 metri; dei
riscul de a interfera pare mare, e foarte puin probabil. Bluetooth-ul folosete o tehnic
numit saltul frecvenelor de spectru dispersat ce face aproape imposibil ca mai mult de un
dispozitiv s transmit pe aceeai frecven simultan. Practic, fiecare device folosete 79
de frecvene individuale alese random dintr-un interval desemnat, schimbarea de la una
la alta facndu-se in mod regulat. Emitoarele schimb frecvenele de 1600 de ori pe
secund, ceea ce nseamn c mai multe dispozitive pot folosi complet o parte limitat a
spectrului radio. Din moment ce fiecare transmitor utilizeaz saltul frecvenelor de
spectru dispersat n mod automat, e improbabil ca dou s transmit simultan pe aceeai
frecven (oricum, interferena ar dura doar o fraciune de secund).
13

Cnd mai multe dispozitive compatibile Bluetooth ajung unele n proximitatea
celorlalte, are loc o conversaie electronic cu scopul de a afla dac au date de partajat
sau dac unele trebuie s le controleze pe celelalte. Utilizatorul nu trebuie s lanseze
nicio comand, schimbul de informaii fcndu-se n mod automat. Odat terminat
acest proces, dispozitivele chiar dac fac parte dintr-un sistem informatic sau audio
formeaz o reea (Personal Area Network sau piconet). Membrii acesteia au grij s
pstreze legtura srind simultan peste frecvenele pe care opereaz alte PAN-uri din
apropiere.
n configurarea oricrei reele de tip wireless, securitatea este mereu un motiv de
ngrijorare. Dispozitivele pot capta cu uurin undele radio din aer, astfel nct cei care
trimit informaii sensibile printr-o conexiune fr fir trebuie s ia msuri de precauie
pentru a se asigura c datele nu sunt interceptate. Bluetooth-ul ofer cteva moduri de
securitate iar productorii de dispozitive l aleg pe cel mai potrivit. n aproape toate
cazurile, utilizatorii i pot stabili o list de dispozitive de ncredere cu care pot face
schimb de date fr a fi necesar s-i da de fiecare dat permisiunea. Metodele de
securitate includ proceduri de autorizare i identificare care limiteaz folosirea
serviciilor Bluetooth pentru cei nenregistrai oblignd utilizatorii s ia o decizie
contient de fiecare dat cnd deschid un fiier sau accept un schimb de date. Atta
timp ct aceste msuri sunt activate pe telefonul utilizatorului (sau orice alt dispozitiv),
accesul neautorizat este puin probabil. Utilizatorul poate, de asemenea, s comute pe
modul nedetectabil pentru a evita orice conectare cu alte dispozitive. Totui, primii
programatori de virui pentru platforme mobile au profitat de conexiunea automat a
Bluetooth-ului pentru a trimite fiiere infectate. Oricum, chiar dac virusul ajunge n
telefon, utilizatorul trebuie s fie de acord s l deschid i mai apoi s l instaleze, aceti
doi pai oprind pn n prezent majoritatea viruilor din a face prea multe stricciuni.
Exist trei probleme de securitate specifice tehnologiei Bluetooth i anume: bluejacking,
bluebugging i car whisperer. Bluejacking implic trimiterea unei cri de vizit (de fapt,
mesaj text) ctre ali utilizatori din raza de 10 metri. Dac cei ce primesc nu i dau
seama ce tip de mesaj este, pot permite accidental contactului primit s fie adugat n
agend si apoi respectivul poate trimite orice tip de coninut ce va fi deschis automat
ntruct provine de la un contact cunoscut. Bluebugging este o problem destul de
serioas, deoarece permite hackerilor s acceseze de la distan telefonul unui utilizator
i s i foloseasc funcionalitile, inclusiv apelurile i mesajele, fr ca acesta s poat
14

sesiza ce se ntmpl. The car whisperer este un produs software care permite hackerilor
s trimit i s primeasc fiiere audio spre, respectiv de la sistemul audio al mainii.
Aceste vulnerabiliti sunt inevitabile i apar ca efecte secundare odat cu progresul
tehnologic; productorii de dispozitive le rezolv ns prin upgrade-uri de soft pe
msur ce ele apar [8].
Atunci cnd vine vorba de versiuni, standardul Bluetooth este defalcat n mai multe
norme:
IEEE 802.15.1 definete versiunile 1.x, ce puteau atinge viteze de 1 megabit pe
secund;
IEEE 802.15.2 recomand utilizarea benzii de frecven de 2.4 GHz (utilizat,
dup cum vom n urmtorul subcapitol, i de WiFi); totui, aceast norm nu a
fost nc aprobat;
IEEE 802.15.3 este un standard n curs de dezvoltare ce ar oferi viteze de pn
la 20 Mbps;
IEEE 802.15.4 este de asemenea n curs de dezvoltare, viznd aplicaiile
Bluetooth ce folosesc viteze reduse.

3.3 Infrarou
Tehnologia bazat pe infrarou permite dispozitivelor s comunice ntre ele prin
semnale wireless cu raz scurt de aciune, putnd transfera fiiere sau alte date digitale
n mod bidirecional. Tehnologia de transmisie n infrarou folosit de computere i
telefoane mobile este similar cu cea folosit n unitile de control la distan (ex:
telecomanda).
Adaptoarele de reea n infrarou pot deopotriv primi i transmite date prin porturile
aflate pe partea din spate sau lateral a unui dispozitivului. Adaptoarele n infrarou
sunt instalate pe anumite laptopuri dar mai ales pe dispozitivele portabile. Pe sistemul
de operare Microsoft Windows conexiunile n infrarou pot fi create prin aceeai
metod ca i alte conexiuni de reea local. Astfel de reele au fost concepute s suporte
conexiune direct ntre doar dou dispozitive i sunt create temporar, n funcie de
15

necesitate. Cu toate acestea, exist extensii ale acestei tehnologii ce suport mai mult de
dou dispozitive i chiar reele semi-permanente.
Comunicarea prin infrarou funcioneaz doar pe distane foarte scurte. Dispozitivele
trebuie plasate la cel mult 5 metri distan, orientate cu emitoarele unul spre cellalt.
Spre deosebire de celelate tehnologii wireless (Wi-Fi i Bluetooth), semnalele de reea n
infrarou nu pot ptrunde prin perei sau alte obstacole i funcioneaz doar n linia de
vedere.
Tehnologia infrarou folosit n reele locale exist n trei forme diferite:
IrDA-SIR (vitez mic) suport transfer de date de pn la 115 Kbps
IrDA-MIR (vitez medie) suport transfer de date de pn la 1.15 Mbps
IrDA-FIR (vitez mare) suport transfer de date de pn la 4 Mbps
Lumina infraroie (IR) este radiaie electromagnetic cu lungimi de und dincolo de
spectrul vizibil. Ochiul uman poate percepe lumina cnd lungimea de und este
cuprins ntre 390 i 700 nanometri, cea infraroie avnd ntre 700 nanometri i 1
milimetru (corespunde la un interval de frecven de aproximativ 430THz 300GHz).
Acest tehnologie a fost utilizat pe scar larg n comunicaiile fr fir pe lungime
scurt, n special n gama de lungimi de und 1530 1565 micrometri, cunoscut sub
numele de C-band. Cele mai multe dintre telecomenzile pentru dispozitive electronice
folosesc o diod emitoare de lumin n infrarou (LED) pentru a emite radiaiile,
acestea fiind apoi concentrate ntr-un fascicul ngust de ctre o lentil de plastic.
Informaiile transmise, cum ar fi numrul canalului pe care dorii s mutai, sunt
codificate ntr-un semnal ce poate fi apoi emis prin intermediul radiaiilor (i ulterior
decodate de ctre receptor), acest proces purtnd numele de modulare.
Cea mai comun schem de modulare pentru comunicarea n infrarou se numete
modulare de 38 kHz. Exist foarte puine surse naturale de lumin infraroie cu aceast
regularitate a semnalului, aa c, un emitor ce transmite date la frecvena de 38 kHz
nu trebuie s i fac griji n privina interferrii.
La apsarea unui buton al telecomenzii, LED-ul de emisie n infrarou va plpi cu o
caden de 38 000 de ori pe secund transmind informaia codificat dispozitivului ce
se dorete a fi controlat de la distan.
16

Dac ar fi s legm un osciloscop de LED-ul telecomenzii, acesta va afia un semnal
asemeni celui din figura 3.3.1. Acest semnal modulat este exact ceea ce sistemul receptor
primete. Aadar, dispozitivul receptor trebuie s demoduleze semnalul pentru a obine
o secven binar ce poate fi interpretat de ctre microcontroler.
Dup demodulare, semnalul reprezentat n figura 3.3.1 va arata precum cel din figura
3.3.2:
Controlnd distana dintre semnalele modulate transmise, undele pot fi citite printr-un
pin de input al microcontrolerului i decodificate sub forma unui flux serial de bii [10].
Doar pentru a v face o idee, din punct de vedere hardware, pentru a realiza o
comunicare prin infrarou, sunt necesare urmtoarele echipamente (am fcut i o scurt
Figura 3.3.1
Figura 3.3.2
17

cercetare asupra preurilor, ntruct am vrut s verific dac este ntr-adevr cea mai
ieftin variant de interaciune):
Microcontroler ex: Arduino Uno ($24.95)
LED infrarou 950 nm ($0.95)
Diod receptoare infrarou ex: TSOP38238 ($1.95)
Buton ntreruptor ($0.35)
Rezistor 330 ($0.95)
Telecomand infrarou ce folosete modularizarea pe 38 kHz ($4.95)
Totul cost aadar sub $35, la nivel experimental. n cazul dispozitivelor mobile
microcontrolerul deja exist, telecomanda nu este necesar deci preul de echipare ar fi
de $3 (lsnd la o parte faptul ca productorii i fac propriile componente sau le
cumpra en gros la un pre mult mai mic).

3.4 Wi-Fi
Wi-Fi este o tehnologie wireless ce permite unui dispozitiv electronic s fac schimb de
date sau s se conecteze la internet folosind unde radio la frecvena de 2.4 sau 5 GHz.
Wi-Fi Alliance, organizaia ce deine toate patentele legate de aceast tehnologie o
definete ca fiind orice reea local fr fir (WLAN wireless local area network) bazat
pe standardele Institutului de Inginerie Electric i Electronic IEEE 802.11.
Un hotspot reprezint o zon cu o reea wireless accesibil, acest termen fiind de obicei
folosit pentru locurile publice. Majoritatea smartphone-urilor sunt ns capabile s creeze
un astfel de hotspot, mprind internetul de la operator, prin intermediul tehnologiei
WiFi, cu alte dispozitive. Acest proces poart numele de tethering.
Un router permite interconecterea unor dispozitive precum computere, telefoane
mobile, imprimante, etc. prin intermediul semnalelor wireless sau a cablurilor Ethernet
i, de asemenea, conectarea acestora la Internet. Majoritatea ofer o acoperire de
aproximativ 30 metri n toate direciile, dei, la fel ca i n cazul radiaiilor infraroii,
pereii i uile pot bloca semnalul. Pentru a extinde zona de acoperire se poate folosi un
repeater ce preia semnalul i l rspndete n vecintatea lui (orice router poate juca i
rol de repeater) [3].
18

Securitatea este un aspect foarte important deoarece o reea neparolat implic prezena
unor utilizatori strini i deci, o vitez mai sczut la Internet. De asemenea, n cazul n
care pe reeaua respectiv sunt partajate i anumite date, oricine va avea acces la ele,
fr a avea nevoie de permisiuni suplimentare. Factorul decisiv n protejarea reelei este
alegerea protocolului de securitate, n conformitate cu standardul actual. The Wired
Equivalency Privacy (WEP) a fost primul standard de securitate pentru reelele de arie
larg (WAN Wide Area Network). Ideea din spatele acestui protocol a fost s creeze o
platform de securitate wireless ce ar face orice reea fr fir la fel de sigur ca o reea
tradiional. Hackerii i-au gsit ntre timp suficiente vulnerabiliti astfel nct acum a
devenit facil s compromii o reea securizat WEP. Urmtorul protocol standardizat a
fost WPA (WiFi Protected Acces) ce folosea o criptare bazat pe conceptul de TKIP
(Temporal Key Integrity Protocol), nesigur ns i el la ora actual. Succesorul su, WPA2,
este standardul de securitate recomandat actual pentru reele WiFi. Acesta are la baz
tot TKIP-ul folosit de WPA dar poate fi configurat s funcioneze i cu un mecanism de
criptare mult mai avansat i anume AES (Advanced Encryption Standard) [4].
Pentru a face configurarea mai uoar, a fost introdus o nou metod numit WiFi
Protected Setup (WPS). Aceast funcionalitate atribuie practic router-ului un cod PIN
unic, care ns nu este randomizat n timp real ci ales de productor. Dei atacurile de
pn acum au dat rezultate doar pe cazuri particulare, nu este considerat foarte sigur.
Un alt mecanism de securitate de actualitate poart numele de Media Access Control
(MAC). Acesta funcioneaz diferit de cele prezentate anterior, nebazndu-se pe o
parol cerut de la utilizator ci pe o component hardware. Dat fiind faptului c fiecare
computer are o adres MAC unic, acest mecanism filtreaz clienii ce ncearc s se
conecteze i le permite doar celor cu adresele specificate la configurarea router-ului.
Singura bre este clonarea unui MAC valid n reea; este totui improbabil ca un client
strin s posede o astfel de adres.
Ultimul punct util vis-a-vis de securitate ar fi schimbarea SSID-ului (Service Set
Identifier). Acesta reprezint numele reelei iar cel predefinit poate oferi adversarului
informaii imediate precum modelul router-ului folosit.
O reea wireless transmite la un nivel de frecven de 2.4 GHz sau 5 GHz, adaptndu-se
la cantitatea de informaie ce este trimis. Standardele de reea (802.11) vor varia
oarecum n funcie de nevoile utilizatorului, astfel:
19

802.11a transmite datele la un nivel de frecven de 5 GHz. OFDM-ul
(Orthogonal Frequency-Division Multiplexing) utilizat mbunteste recepia prin
diviziunea semnalelor radio n semnale mai mici, nainte ca acestea s ajung la
router. Se pot trimite date cu o vitez de pn la 54 de megabii pe secund;
802.11b transmite datele la un nivel de frecven de 2.4 GHz, ceea ce implic o
vitez de transfer a datelor mult mai mic n comparaie cu norma anterioar, de
maximum 11 megabii pe secund;
802.11g transmite tot la un nivel de frecven de 2.4 GHz, ns, deoarece
folosete o codificare de tipul OFDM, poate trimite date cu viteza de 54 de
megabii pe secund;
802.11n cea mai rapid norm, se pot transmite pn la 140 de megabii pe
secund, utilizndu-se un nivel de frecven de 5 GHz [11].
Exist cteva tipuri de hardware ce pot fi folosite n implementarea unei reele WiFi,
precum:
Adaptoarele wireless (adapters) sau controlerele interfeei de reea (NIC Network
Interface Controllers) sunt plci de reea cu standardul 802.11 ce permit mainii s
se conecteze la o reea wireless. Aceste dispozitive sunt disponibile n numeroase
formate: plci PCI (Peripheral Component Interconnect), plci PCMCIA (Personal
Computer Memory Card International Association), adaptoare USB (Universal Serial
Bus) sau plci CF (Compact Flash). O staie reprezint un dispozitiv ce folosete o
astfel de plac de reea;
Punctele de acces (denumite i hotspot-uri) pot permite staiilor din apropiere s
acceseze o reea pe fir cu care ele sunt conectate direct.
Standardul 802.11 definete dou moduri de operare:
Modul infrastructural, unde clienii sunt conectai la un punct de acces (implicit
pentru plcuele cu standardul 802.11b);
Modul ad-hoc, unde clienii sunt conectai unii la ceilali, fr a mai fi nevoie de
existena unui punct de acces.
Modul infrastructural
n acest mod, fiecare staie se conecteaz la un punct de acces printr-o legtur wireless.
Modelul format de punctul de acces i staiile localizate n raza de acoperire a acestuia
20

este denumit set de servicii de baz (BSS Basic Service Set). Fiecare astfel de BSS este
identificat printr-un BSSID, un identificator pe 6 octei, care, n modul infrastructural,
coincide cu adresa MAC a hotspot-ului.
Este posibil ca mai multe puncte de acces
(sau mai precis seturi de servicii de baz)
s fie interconectate printr-un sistem de
distribuie, cu scopul de a forma un set de
servicii extins (ESS
Extended Service Set).
Sistemul de distribuie
poate fi o reea pe fir, un
cablu ntre dou puncte de
acces sau chiar o reea
wireless.
Un set de servicii extins este
indentificat n cadrul reelei
prin intermediul unui
ESSID, un identificator de 32 de caractere (n format ASCII). Deseori prescurtat SSID,
acesta afieaz numele reelei i funcioneaz ca un prim nivel de securitate, ntruct
este necesar pentru o staie s cunoasc acest identificator pentru a se putea conecta la
reeaua extins.
Atunci cnd un utilizator migreaz de la un set de servicii de baz la altul (deplasndu-
se n cadrul setului de servicii extins), adaptorul wireless este capabil s schimbe
automat punctul de acces, n funcie de calitatea semnalului. Punctele de acces
comunic ntre ele folosind un sistem de distribuie n scopul de a schimba informaii
Figura 3.4.1
Figura 3.4.2
21

despre staii i, dac este necesar, pentru a transmite date de la staiile mobile.
Funcionalitatea ce permite staiilor s se mute facil de la un punct de acces la altul
poart numele de roaming.
Comunicarea cu hotspot-ul
Atunci cnd o staie se altur unei celule, celula trimite o cerere de prob pe fiecare
canal. Aceast solicitare conine identificatorul ESSID pe care celula este configurat s
l utilizeze, precum i volumul de trafic pe care adaptorul wireless l suport. Dac
ESSID-ul nu este setat, staia ascult n reea pentru a-l afla.
Fiecare punct de acces emite la intervale regulate (aproximativ de 10 ori pe secund) un
semnal numit far (beacon) ce conine informaii cu privire la identificatorul setului su
de servicii de baz (BSSID), caracteristici i, dac este cazul, identificatorul setului de
servicii extins (ESSID). ESSID-ul este emis implicit, ns ,este posibil (i recomandat) ca,
din motive de securitate, aceast optiune sa fie dezactivat. Ori de cte ori o cerere este
primit, punctul de acces verific identificatorul i volumul de date cerut prin
intermediul farului. Dac ESSID-ul trimis se potrivete cu cel al punctului de acces se
trimite un rspuns ce conine date de sincronizare i informaii cu privire la sarcina de
trafic. n acest fel, staia ce primeste rspunsul poate testa calitatea semnalului trimis de
hotspot pentru a determina aproximativ la ce distan se afl. n general, dup cum e i
firesc, cu ct un punct de acces este mai apropiat, cu att semnalul este mai puternic i
viteza de transfer a datelor crete.
Aadar, o staie ce se afl n raza de acoperire a mai multor hotspot-uri (care au acelai
SSID) l va alege pe cel ce ofer cel mai bun raport ntre capacitatea i ncrctura
traficului curent.
Modul ad-hoc
n acest mod, clienii main se conecteaz wireless ntre ei cu scopul de a forma o reea
peer-to-peer (o reea in care fiecare main se comport ca i client i punct de acces
deopotriv).
22

Modelul format de aceste staii este
denumit set de servicii de baz
independent (IBSS).
Aadar, un IBSS este o reea wireless
ce conine cel puin dou staii i nu
folosete niciun punct de acces.
Acesta formeaz o reea temporar ce
permite clienilor s fac schimb de
date i, asemeni setului de servicii
extins din modul infrastructural, este
identificat printr-un SSID.
ntr-o reea ad-hoc, raza de acoperire
a setului de servicii de baz
independent este determinat de
raza de acoperire a fiecrei staii din
reea n parte. Asta nseamn c, dac
dou staii din reea sunt una n afara razei de acoperire a celeilalte, ele nu vor putea
comunica ntre ele chiar dac vd celelalte staii. Spre deosebire de modul
infrastructural, modul ad-hoc nu are un sistem de distribuie care s poat trimite cadre
de date de la o staie la alta. Setul de servicii de baz independent este, prin definiie, o
reea fr fir restricionat [12].


Figura 3.4.3
23


Capitolul 4
Descrierea soluiei

n cele ce urmeaz, vom prezenta aplicaia la toate nivelurile ei. Pentru nceput vom
prezenta cazurile de utilizare cu scopul de a nelege mai bine cum aceasta funcioneaz
i de ce este util; vom trece apoi la detaliile de implementare, nu nainte ns de a ne
familiariza cu conceptele folosite n dezvoltare (specifice platformei Android).

4.1 Cazuri de utilizare
Remote Redirect
este o aplicaie
dezvoltat pe
platforma Android
ce permite
utilizatorului s i
redirecioneze
apelurile i
mesajele text
primite ctre alt
numr de telefon,
att local, ct i de
la distan.

Figura 4.1.1
24


Figura 4.1.1 reprezint diagrama cazurilor de utilizare; toate funcionalitile prezente
vor fi explicate pe larg n cele ce urmeaz, mai nti la nivel de utilizare i mai apoi din
perspectiva tehnicilor de implementare.
La prima utilizare a aplicaiei (imediat dup instalare), vei urma un scurt tutorial
pentru a nelege exact cum
funcioneaz.
Redirecionarea local se poate realiza
n momentul n care avei acces fizic la
dispozitivul dumneavoastr. Dup cum
vedei n Figura 4.1.2, primul pas este s
selectai numrul de telefon spre care
dorii s se realizeze redirecionarea.
Butonul Pick Number va deschide lista
de contacte de unde vei putea alege
destinatarul. Urmtorul lucru pe care
trebuie s l stabilii este tipul
redirecionrii: apeluri, mesaje text sau
ambele. Ultimul pas este s comutai
butonul de status pe Active.
n Figura 4.1.3, serviciul este inactiv,
utilizatorul avnd selectat contactul
spre care vrea s se realizeze
redirecionarea (Tim). Utilizatorul poate
verifica dac serviciul este activ n trei
moduri diferite. n cazul n care se afl
nc n aplicaie poate consulta
comutatorul de status. Altfel, poate
verifica dac n colul din stnga sus se
afl pictograma aplicaiei (Figura 4.1.4) sau dac apare n meniul de notificri. n cazul
de fa serviciul este activ, toate mesajele text fiind redirecionate pe numrul de telefon
al lui Tim <0741 258 963>.
Figura 4.1.2
25

Redirecionarea la distan este util cnd nu avei acces la telefonul dumneavoastr i
utilizai un alt telefon pentru a activa serviciul, printr-un mesaj cheie. Structura
mesajului cheie trebuie s fie urmtoarea: #rdr Parol Tip *Numr de telefon].
Parol un cod tiut doar de dumneavoastr care face imposibil redirecionarea
de ctre o persoan neautorizat; la instalarea aplicaiei parola presetat este
12345 dar este de preferat s fie schimbata (putei face acest lucru din setri,
accesnd Set password Figura 4.1.5);
Tip specific aciunea pe care telefonul o va realiza, dup cum urmeaza:
0 dezactiveaz orice redirecionare activ;
1 redirecioneaz doar apelurile;
2 redirecioneaz doar mesajele text;
Figura 4.1.3 Figura 4.1.4
26

3 redirecioneaz i apelurile i mesajele text.
Numr de telefon cel pe care dorii s v fie redirecionate mesajele i/sau
apelurile (nu trebuie s coincid neaprat cu numrul de pe care trimitei
mesajul cheie i poate lipsi pentru tipul 0).
De exemplu:
#rdr 12345 0 acest mesaj cheie
dezactiveaz orice redirecionare
anterioar;
#rdr 12345 1 0766888999
redirecioneaz toate apelurile ctre
numrul specificat.
Dup cum am spus mai sus, un lucru
esenial nainte de a realiza orice
redirecionare este s schimbm parola.
Mai exist ns i alte configurri ce
trebuiesc fcute, n funcie de zona pe
glob i operatorul de telefonie mobil.

Figura 4.1.5
Figura 4.1.6
27

Setarea implicit funcioneaz pentru continentele Europa, Africa i Australia. Se poate
comuta pe alte coduri predefinite (pentru America de Nord sau operatorul Sprint
Nextel) accesnd din meniul de setri Activation and deactivation codes (Figura 4.1.6).
Dac ns codurile operatorului de telefonie mobil nu se regsesc printre cele
predefinite, se va selecta opiunea Custom i se vor completa manual n cmpurile de
dedesubt ce vor deveni editabile: prefixul i sufixul codului de activare i codul de
dezactivare (Figura 4.1.7).
Ultima parte a setrilor (ca importan)
se leag de notificarea utilizatorului n
diferite situaii. Astfel, dac acesta
dorete s primeasc o confirmare cum
c redirecionarea a fost activat cu
succes pe numrul ales trebuie s bifeze
csua din dreptul elementului Confirm
Activation. Odat aleas aceast opiune
devine accesibil o a doua, util n
momentul n care numrul de pe care se
trimite mesajul cheie nu este acelai cu
cel ales pentru redirecionare. Putei
deci opta ca sms-ul de confirmare s se
trimit pe numrul care a iniiat mesajul
cheie sau pe numrul pe care va
funciona redirecionarea.
Meniul de setri din care se fac toate
ajustrile de care am vorbit pn acum
se poate accesa din colul din dreapta
sus al ferestrei principale (pictograma
cu cheie); pictograma cu semnul
ntrebrii deschide help-ul, loc unde este prezentat sumar modul de utilizare a aplicaiei.
Detaliile cu privire la copyright se gsesc n meniul de setri, la ultimul element al listei
numit Licenses.
Sistemul de operare Android are implementat un meniu de notificri care poate fi
declanat glisnd degetul pe ecranul dispozitivului de sus n jos. Aici se pot gsi
Figura 4.1.7
28

apelurile ratate, mesajele i e-mailurile
necitite sau orice alte nouti furnizate
de aplicaiile instalate ce au permisiunea
de a trimite notificri push. Atunci cnd
serviciul de redirecionare este activ, n
lista de notificri apare un element ce
afieaz sumar starea aplicaiei i
permite dezactivarea (Figura 4.1.8 sms-
urile sunt redirecionate ctre numrul
222).








4.2 Platforma Android
Dup cum am explicat pe scurt i n capitolul 2, am ales Android-ul ca sistem de
operare suport pentru proof of concept-ul meu ntruct este cel mai customizabil,
puin restrictiv i nu n ultimul rnd gratuit aici m refer la taxa de a publica aplicaii
pe market-ul nativ al platformei.
iOS-ul de exemplu (sistemul de operare folosit de dispozitivele produse de Apple), din
motive ce in de securitatea clienilor multe numere cu supratax au un format
asemntor cu numrul special ce trebuie apelat pentru redirecionarea convorbirilor
Figura 4.1.8
29

nu permite ca un astfel de eveniment s se produc automat, chiar dac utilizatorul a
dat n prealabil aplicaiei permisiunea de a iniia automat apeluri.
Android este un sistem de operare din familia Unix, bazat pe kernel-ul Linux, cu o
interfa utilizator bazat pe manipulare direct, proiectat n primul rnd pentru
dispozitive mobile cu ecran tactil (touchscreen), folosind input-uri de tip atingere, ce
corespund vag la aciuni din viaa real, alturi de o tastatur virtual.
Un aspect foarte important legat de Android l constituie faptul c are codul surs
publicat de ctre Google sub licene open-source. Acest lucru a format o comunitate
activ de dezvoltatori i entuziati ce folosesc codul surs al proiectului AOSP (Android
Open Source Project) pentru a dezvolta i distribui propriile versiuni modificate ale
sistemului de operare. Acestea aduc deseori funcionaliti noi i actualizri pentru
dispozitive mai repede dect productorul oficial sau operatorul de telefonie mobil,
totui, fr a garanta funcionarea la parametri optimi. De asemenea, comunitatea ofer
suport continuu pentru dispozitivele mai vechi ce nu mai primesc actualizri oficiale i
ajut utilizatorii neexperimentai sa porteze Android pe dispozitive ce oficial ruleaz
alte sisteme de operare. Versiunile lansate de comunitate sunt de cele mai multe ori pre-
rooted i conin modificri inadecvate pentru utilizatorii neiniiai n acest domeniu, cum
ar fi capacitatea de supraturare sau subturare a procesorului. CyanogenMod este
versiunea comunitar cea mai popular i st la baza majoritii celorlalte.
De-a lungul timpului, productorii de dispozitive i operatorii de telefonie mobil au
descurajat orice tentativ de dezvoltare de versiuni paralele a sistemului de operare de
ctre o ter parte. Productorii i exprim ngrijorarea cu privire la funcionarea
necorespuztoare a dispozitivelor ce ruleaz astfel de versiuni neoficiale i costurile de
asisten ce rezult din acest motiv. Mai mult dect att, firmware-urile modificate ofer
de multe ori funcionaliti precum tethering-ul, pentru care operatorii ar percepe un
tarif suplimentar. De aceea, multe dispozitive au acces restricionat la permisiunile de
root (admin) sau bootloader-ul blocat. Chiar i aa, cum versiunile dezvoltate de
comunitate au devenit tot mai populare iar n S.U.A. a fost dat chiar o lege n acest
sens (devenind legale), productorii au luat poziii din ce n ce mai puin radicale,
ajungnd la ora actual s sprijine dezvoltarea lor. Ca urmare a acestui fapt, un numr
tot mai mare de dispozitive sunt livrate deblocate, pentru a scpa utilizatorul de
ocolirea tuturor restriciilor hardware n cazul n care acesta opteaz pentru instalarea
unei versiuni neoficiale (totui, n 90% dintre cazuri, procednd astfel, se pierde
30

garania). Dei productorii au o atitudine tot mai deschis, muli operatori de telefonie
comand nc dispozitive blocate, pentru a se asigura de fidelitatea clienilor lor [13].

n partea de sus a kernel-ului Linux se gsesc: middleware-ul, librrii i API-uri scrise n C
i soft-ul ce ruleaz ntr-un cadru de aplicaie ce include librrii compatibile Java bazate
pe Apache Harmony. Android ruleaz n maina virtual Dalvik; de la versiunea 4.4,
este suportat o nou main virtual experimental, ART, care nu este ns activat n
mod implicit. Librria standard de C a Android-ului, Bionic, a fost dezvoltat special de
Google, ca o derivare a librriei BSD. Bionic conine o suit major de funcionaliti
noi, specifice kernel-ului Linux, aflndu-se n prezent ntr-o continu dezvoltare
(independent de alte baze de cod surs Android). Principalele avantaje ale folosirii
librriei Bionic n locul GNU C (glibc) sunt: modelul diferit de liceniere, diminuarea
Figura 4.2.1 Software Stack
31

spaiului ocupat la executare i optimizarea pentru procesoare cu frecvene sczute. Cu
scopul de a obine un model de liceniere ct mai adecvat, spre sfritul anului 2012,
Google a scrimbat stiva Bluetooth din BlueZ (aflat sub licen GPL) n BlueDroid
(licen Apache).
Android nu are un sistem nativ de ferestre X n mod implicit, nici nu suport un set
complet de librrii standard GNU. Acest lucru a fcut dificil portarea aplicaiilor Linux
existentem, pn la versiunea R5 a NDK-ului (Android Native Development Kit) ce
furnizeaz suport pentru aplicaii scris n ntregime n C sau C++. Librriile scrise n C
pot fi i ele folosite n aplicaii scrise n Java prin injectarea unei mini-librrii (shim) Java
i utilizarea JNI-ului (Java Native Interface) [14].
Pentru a putea trece la detaliile de implementare, trebuie s explicm mai nti cteva
concepte specifice platformei:
1. Intents & Intent Filters
Un intent este un obiect de mesagerie ce poate fi folosit pentru a solicita o aciune din
alt component a aplicaiei. Dei intent-urile faciliteaz comunicarea ntre componente
n diferite moduri, putem separa trei cazuri de utilizare fundamentale:
o Declanarea unei activiti
O activitate reprezint un singur ecran al aplicaiei. Putei ncepe o nou instan
a unei activiti pasnd un intent ca parametru funciei startActivity(). Acesta
descrie activitatea ce urmeaz s porneasc i conine toate datele necesare.
Dac dorii s primii un rezultat n momentul n care activitatea se termin,
trebuie s apelai metoda startActivityForResult(). Activitatea dumneavoastr va
primi rezultatul sub forma unui intent separat, n cadrul callback-ului
onActivityResult().
o Declanarea unui serviciu
Un serviciu este o component care efectueaz operaiuni n fundal, fr a avea
nevoie de o interfa utilizator. Putei porni un serviciu pentru a efectua o
operaiune o singur dat (cum ar fi descrcarea unui fiier), pasnd un intent
32

metodei startService(). Acesta descrie serviciul ce urmeaz s porneasc i conine
toate datele necesare.
n cazul n care serviciul este proiectat cu o interfa client server, v putei lega
la serviciu din alt component a aplicaiei pasnd un intent funciei bindService().
o Transmiterea unui broadcast
Un broadcast reprezint un mesaj ce poate fi primit de orice aplicaie. Sistemul
transmite astfel de mesaje pentru diverse evenimente, cum ar fi atunci cnd
sistemul pornete sau cnd dispozitivul ncepe s se ncarce. Utilizatorul poate
trimite i el mesaje de tip broadcast ctre alte aplicaii pasnd un intent ctre una
din urmtoarele trei metode: sendBroadcast(), sendOrderedBroadcast(),
sendStickyBroadcast().
Din punct de vedere al specificitii, putem de asemenea deosebi dou tipuri de intent-
uri:
Explicite specific numele componentei ce trebuie s porneasc (mai exact
numele complet al clasei). Vei folosi de obicei un intent explicit pentru a porni o
activitate sau un serviciu din cadrul propriei aplicaii, deoarece cunoatei
numele clasei componentei respective. De exemplu, declanai o nou activitate
ca rspuns la o aciune efectuat de utilizator sau pornii un serviciu pentru a
descrca un fiier n fundal.
Implicite nu denumesc o component specific ns declar o aciune general,
ceea ce permite unei componente din alt aplicaie s o efectueze. De exemplu,
dac dorii s artai utilizatorului o locaie pe hart, putei utiliza un intent
implicit pentru a solicita ca o alt aplicaie capabil s fac acest lucru.
Atunci cnd creai un intent explicit pentru a porni o activitate sau un serviciu, sistemul
lanseaz imediat componenta specificat. n cazul unui intent implicit, sistemul caut
cea mai potrivit component prin compararea coninutului acestuia cu filtrele de
intenie (intent filters) declarate n fiierele manifest ale altor aplicaii instalate pe
dispozitiv. Dac sistemul gsete o singur potrivire, lanseaz imediat componenta.
Altfel, afieaz o fereastr (de tip dialog) prin care utilizatorul poate alege ce aplicaie s
fie utilizat.
33

Schema din figura 4.2.2 ilustreaz cum este pasat un intent implicit prin intermediul
sistemului pentru a ncepe o nou activitate. Aadar, activitatea A creaz un intent ce
conine o descriere a aciunii de efectuat i l paseaz metodei startActivity(). Sistemul
caut n toate aplicaiile un intent filter potrivit pentru intent-ul primit. Atunci cnd
gsete o potrivire, sistemul pornete acea activitate (n cazul nostru, activitatea B) prin
invocarea metodei onCreate() creia i paseaz intent-ul.
Un intent filter este o expresie aflat n fiierul manifest al aplicaiei ce specific
tipurile de intent-uri pe care componenta accept s le primeasc. De exemplu, prin
declararea unui intent filter pentru o activitate, devine posibil ca aceasta s fie deschis
de ctre alte aplicaii prin intermediul unui anumit intent. De asemenea, dac nu este
declarat niciun filtru pentru o activitate, atunci ea poate fi pornit doar explicit.
Din motive de securitate, este recomandat ca pornirea serviciilor s fie facut printr-un
intent explicit, fr a declara filtre. Folosind un intent implicit, nu poi fi sigur cine l va
prelua, iar utilizatorul nu poate vedea ce serviciu pornete [15].
2. Broadcast receivers
BroadcastReceiver reprezint clasa de baz folosit pentru recepionarea intent-urilor
trimise de metoda sendBroadcast(). Putei nregistra dinamic o instan a acestei clase
apelnd Context.registerReceiver() sau putei implementa static n fiierul
AndroidManifest.xml, folosind tag-ul <receiver>.
Figura 4.2.2
34

Extist dou tipuri de broadcast-uri ce pot fi recepionate:
Normale trimise cu Context.sendBroadcast() sunt complet asincrone. Toi
receptorii funcioneaz ntr-o ordine nedefinit, deseori n acelai timp. Este
modul cel mai eficient, dar receptorii nu pot folosi rezultatele sau codul de retur
al API-ului.
Ordonate trimise cu Context.sendOrderedBroadcast() sunt transmise fiecrui
receptor pe rnd. Pe msur ce fiecare receptor i termin task-ul, poate propaga
rezultatul spre urmtorul receptor sau poate abandona definitiv recepia.
Receptorii pot fi ordonai prin atributul android:priority aparinnd intent filter-
ului potrivit; receptorii cu aceeai prioritate vor rula n ordine aleatoare.
Chiar i in cazul transmisiilor normale, sistemul poate hotr n unele situaii s
transmit fiecrui receptor pe rnd. Mai exact, n cazul receptorilor ce necesit crearea
unui proces, doar unul va fi deservit la un moment dat, pentru a evita suprancrcarea
sistemului cu procese noi. Chiar i aa, proprietile semantice ale transmisiilor
neordonate se pstreaz: receptorii nu pot returna rezultate sau abandona recepia.
De reinut este faptul c, dei clasa Intent este folosit pentru transmiterea i
recepionarea acestor broadcast-uri, mecanismul folosit aici este complet diferit de cel
utilizat la pornirea activitilor. Sub nicio form, un BroadcastReceiver nu va putea vedea
sau capta un intent iniiat prin metoda Context.startActivity(); de asemenea, un intent
difuzat broadcast, nu va putea nicioadat s declaneze o activitate. Aceste dou operaii
sunt foarte diferite una de cealalt la nivel semantic: pornirea unei activiti prin
intermediul unui intent este o operaiune de prim-plan (foreground), ce modific
interfaa cu care utilizatorul interacioneaz n acel moment, n timp ce difuzarea unui
intent este o operaiune de fundal (background), de care n mod normal utilizatorul nu
este contient.
Dac nu este nevoie s transmitei mesaje broadcast ntre aplicaii, este recomandat
folosirea clasei LocalBroadcastManager n locul metodelor mult mai generale amintite mai
sus. Acest lucru ajut la o implementare mult mai eficient, neavnd nevoie de
comunicare ntre procese, i v permite s evitai eventualele problemele de securitate
vis-a-vis de alte aplicaii capabile de transmiterea i recepionarea broadcast-urilor.
Observaie: n cazul nregistrrii unui receptor n implementarea metodei
Activity.onResume(), el trebuie anulat n cadrul metodei Activity.onPause(); ntruct
35

oricum nu se vor recepiona intent-uri dac aplicaia este inactiv, acest lucru va reduce
ncrcarea inutil a sistemului. Nu este recomandat ca anularea receptorului s se fac
n interiorul funciei Activity.onSaveInstanceState(), deoarece, n cazul n care utilizatorul
manipuleaz stiva n care este reinut istoricul (history stack), aceasta nu va mai fi
apelat.
Receptorii sunt, prin natura lor, o funcionalitate conceput pentru comunicarea ntre
aplicaii. Trebuie astfel avut grij la modul n care alte aplicaii ar putea specula
folosirea lor:
Namespace-ul Intent este global; astfel, numele aciunilor acestuia i restul
stringurilor trebuie scrise ntr-un namespace propriu, pentru a nu intra n coflict
cu alte aplicaii;
Cnd metoda registerReceiver(BroadcastReceiver, IntentFilter) este utilizat, orice
aplicaie poate transmite ctre acest receptor. Pentru a impune o permisiune de
trimitere, trebuie s furnizai un parametru nenul (not null) metodei
sendBroadcast(Intent,String) sau metodei sendOrderedBroadcast(Intent, String,
BroadcastReceiver, android.os.Handler, int, String, Bundle). Doar receptorii crora le-
au fost garantate aceste permisiuni (prin tag-ul <uses-permission> n fiierul
Manifest.xml) vor fi capabili s recepioneze broadcast-ul. n sens invers, pentru a
impune o permisiune la primire, trebuie s furnizai un parametru nenul n
momentul nregistrarii receptorului, fie prin metoda
registerReceiver(BroadcastReceiver, IntentFilter) sau, static, declarndu-l n
Manifest.xml. Analog, doar broadcast-urile cu permisiuni pot trimite un intent
ctre receptor.
Cnd un receptor este publicat n manifest-ul aplicaiei i sunt specificate filtre de
intenie pentru el, orice alt aplicaie i poate trimite broadcast-uri, indiferent de
filtrele specificate. Pentru a preveni acest lucru, receptorul poate fi setat ca
indisponibil pentru aplicaii exterioare prin android:exported = "false".
Cnd este utilizat metoda sendBroadcast(Intent), n mod normal, orice alt
aplicaie n afar de cea curent poate primi aceste emisii. Putei totui controla
exact cine s recepioneze, prin setarea permisiunilor, aa cum am explicat puin
mai sus. ncepnd cu versiunea Android 4.0 (Ice Cream Sandwich), restricionarea
emisiei pentru o singur aplicaiei se poate face i prin Intent.setPackage.
36

Niciuna dintre aceste probleme nu apar dac este folosit LocalBroadcastManager-ul,
deoarece intent-urile nu prsesc niciodat procesul curent.
Durata de via a unui receptor un obiect de tip BroadcastReceiver este valabil doar pe
durata apelului metodei onReceive(Context, Intent). Odat ce se iese din funcie, sistemul
consider ca obiectul nu mai este activ. Acest lucru are repercursiuni importante la
nivelul implementrii metodei onReceive: orice necesit operaii asincrone nu este
disponibil, deoarece pentru acest lucru este necesar ieirea din funcie iar la acel punct
BroadcastReceiver-ul nu mai este activ i, astfel, sistemul este liber s termine procesele
nainte ca operaia asincron s se fi ncheiat. n particular, nu e recomandat s deschizi
ferestre de tip dialog sau s te legi la servicii din cadrul unui BroadcastReceiver. Ca i
alternativ, pentru dialog poate fi folosit NotificationManager-ul iar pentru pornirea
serviciului comanda Context.startService().
Durata de via a unui proces un proces ce n momentul de fa execut un
BroadcastReceiver (ruleaz codul din interiorul metodei onReceive(Context, Intent)) este
considerat a fi proces de prim-plan si este meninut prioritar de ctre sistem cu excepia
cazurilor extreme de lips de memorie. Odat ce metoda onReceive() se termin de
executat, BroadcastReceiver-ul devine inactiv iar procesul ce l gzduiete devine la fel de
important ca celelalte componente ale aplicaiei (adic i scade prioritatea). Acest lucru
este deosebit de important deoarece dac procesul a gzduit doar un BroadcastReceiver
(caz des ntalnit mai ales pentru aplicaiile ce ruleaz n fundal i cu care utilizatorul nu
a interacionat recent), atunci la terminarea execuiei funciei onReceive() sistemul va
considera procesul ca fiind gol i l va inchide. Astfel, pentru operaiunile de lung
durat, se va folosi un serviciu ce nglobeaz i un BroadcastReceiver pentru a menine
procesul activ pn ce operaiunea este finalizat [16].
3. Shared Preferences
Sistemul de operare Android ofer dezvoltatorilor mai multe opiuni pentru persistena
datelor, n funcie de nevoile specifice:
- Shared Preferences: stocheaz tipuri de date primitive (private) ntr-un dicionar
de tip cheie-valoare;
- Internal Storage: stocheaz date private n memoria dispozitivului;
- External Storage: stocheaz date publice ntr-un spaiu extern comun;
37

- SQLite Databases: stocheaz date structurate ntr-o baz de date privat;
- Network Connection: stocheaz datele online pe serverul dumneavoastr.
Mai mult dect att, Android-ul furnizeaz o modalitatate prin care putei partaja chiar
i datele private cu celelalte aplicaii, i anume un furnizor de coninut (content provider).
Acesta este o component opional ce permite accesul (citire/scriere) la datele
aplicaiei, n funcie de restriciile pe care le impunei [17].
ntorcndu-ne la Shared Preferences, aceasta este o clas ce v permite s salvai i mai
apoi s preluai tipuri de date primitive (boolean, int, long, float i string) sub forma unor
perechi de tip cheie-valoare. Aceste date vor persista i dac aplicaia crap.
Pentru a obine un astfel de obiect, se poate folosi una dintre metodele:
- getSharedPreferences() dac avei nevoie de mai multe fiiere de preferine,
identificate printr-un nume pe care il specificai prin primul parametru;
- getPreferences() dac avei nevoie doar de un fiier per activitate.
Pentru a scrie valori, sunt necesari urmatorii pai:
- obinei un obiect de tipul SharedPreferences.Editor prin apelarea metodei edit();
- adugai valori prin metodele corespunztoare tipului de date folosit, cum ar fi
putBoolean() sau putString();
- comitei noile valori apelnd metoda commit().
Pentru a citi valori, se folosesc tot metode corespunztoare tipului de date vizat de
exemplu getFloat() sau getLong() [18].

4.3 Detalii de implementare
Acum c principalele concepte folosite n implementare au fost acoperite, putem explica
mai amnunit cum anume funcioneaz aplicaia. Am insistat n partea teoretic ce viza
descrierea platformei pe obiectele specifice Intent, IntentFilter i BroadcastReceiver
ntruct, dup cum vei observa n cele ce urmeaz, sunt principalele instrumente
utilizate.
38

Principala funcionalitate a acestei aplicaii este puin atipic, ntruct se realizeaz de la
distan, fr ca utilizatorul s interacioneze direct cu dispozitivul su Android.
Desigur, aceeai funcionalitate este disponibil i local, dar scenariul n care
utilizatorul ar avea nevoie de ea nu este foarte plauzibil. De asemenea, la nivel de
implementare, acest caz nu este ctui de puin spectaculos. Exist n activitatea
principal obiecte de interfa ce faciliteaz alegerea numrului de telefon n vederea
redirecionrii precum i tipul acesteia: la apsarea butonului Pick Number, printr-un
intent este deschis o list de contacte iar pentru selectarea tipului este folosit un
Spinner, ce conine cele 3 valori standard: Calls, SMS & Both.
n cazul redirecionrii la distan, lucrurile se complic. n fiierul manifest este
nregistrat un BroadcastReceiver ce ascult toate mesajele primite de dispozitiv i altul
pentru funcionalitatea de dezactivare din cadrul notificrilor. Primul, n cadrul funciei
onReceive(Context, Intent), parseaz mesajul tocmai primit verificnd dac este de tip
KTM (Key Text Message), cu alte cuvinte, dac respect protocolul uzitat de aplicaie
(ncepe cu #rdr, conine parola corect, tipul, etc.) i notific emitorul dup caz:
Mesaj recepionat Rspuns dup parsare Observaii
Hello... 0766888999
Hello...
sms oarecare presupunnd
c serviciul de redirecionare
pentru mesaje text este deja
pornit, sms-ul se retrimite
dup ce se concateneaz la
nceput numrul
emitorului; dac serviciul e
oprit, nu se ntmpl nimic;
#rdr 12345 1
0766888999
Parol greit!!! presupunem c parola
utilizatorului este diferit de
12345, cea implicit;
#rdr 1 12345
0766888999
Mesaj cheie gresit!!! Structura
corecta a mesajului este: #rdr
Parola Tip [Numar de telefon]
unde tipul trebuie sa fie 0, 1, 2 or
3.
mesajul are structura aproape
corect, cu excepia faptului
c specificarea tipului i a
parolei apar n ordine invers;
#rdr 12345 1
0766888999
Redirecionarea apelurilor a fost
activat cu succes!
sau
n acest caz, presupunem c
parola corect este 12345; cel
de-al doilea mesaj este pentru
39

Activarea redirecionrii
apelurilor nu s-a putut realiza!
momentele n care
redirecionarea este refuzat
de operator (foarte rar, ns
este vital ca utilizatorul s tie
dac serviciul a fost sau nu
activat cu succes);
#rdr 12345 2
0766888999
Redirecionarea mesajelor a fost
activat cu succes!
aceeai prezumie vis-a-vis de
parol; spre deosebire de
cazul anterior, redirecionarea
se face prin retrimiterea
manual a mesajelor (ntruct
operatorul nu permite acest
lucru automat) i deci nu
exist caz de eroare;
#rdr 12345 3
0766888999
Redirecionarea apelurilor i a
mesajelor a fost activat cu
succes!
sau
Activarea redirecionrii
apelurilor nu s-a putut realiza!
n caz de eroare la ncercarea
de redirecionare a apelurilor
sistemul permite totui ca
pentru mesaje serviciul s
funcioneze n continuare
(care dup cum am spus, nu
depinde de operator);
#rdr 12345 0 Toate redirecionrile au fost
dezactivate cu succes!
sau
Dezactivarea redirecionrii
apelurilor nu s-a putut realiza!
i aici, de asemenea, singura
problem ce poate aprea este
legat de apeluri.
Observaie: n cazul unui cod de eroare primit de la operator la ncercarea de a activa
sau dezactiva redirecionarea apelurilor, sistemul va repeta operaiunea de 3 ori; dac i
dup aceste rencercri rezultatul este tot negativ, utilizatorul va fi notificat
corespunztor.
Pentru fiecare deznodmnt posibil (activare reuit/nereuit sau dezactivare
reuit/nereuit), clasa ServiceState nregistreaz cte un BroadcastReceiver ce
reacioneaz corespunztor. De exemplu, n cazul n care activarea redirecionrii
apelurilor reuete, funcia onReceive() din cadrul receptorului va face, n ordine,
urmtorii pai:
40

- seteaz n SharedPreferences 3 cmpuri i anume REDIRECT_NUMBER (numrul
spre care se face redirecionarea), CALL_REDIRECT_ACTIVE (true, ntruct
activarea a fost ncheiat cu succes) i REDIRECT_ACTIVE (true, de asemenea);
- verific dac redirecionarea a fost fcut de la distan i, n caz afirmativ,
trimite un sms de ntiinare utilizatorului;
- afieaz n lista de notificri un element ce descrie sumar starea aplicaiei i
permite dezactivarea serviciului.
Activitatea de setri extinde clasa PreferenceActivity, disponibil odat cu versiunea 3.0,
Honeycomb iar configurrile sunt salvate tot n SharedPreferences. Ce merit amintit aici
este felul n care lista de setri se modific dinamic n timpul interaciunii cu
utilizatorul. Anumite setri nu au sens dect n cascad, adic depind de cele
precedente. De exemplu, n cazul codurilor de activare i dezactivare, dac este aleas o
variant standard (s zicem cea pentru Europa, Australia i Africa), EditText-urile
responsabile pentru setarea acestora devin ReadOnly. Dac RadioButton-ul este comutat
pe modul personalizat, cmpurile devin din nou active. De asemenea, tot n meniul de
setri, se poate opta printr-un CheckBox dac se doresc sau nu mesaje de confirmare
dup ce serviciul a fost activat. Dac se doresc, se poate alege de dedesubt, prin
intermediul unui RadioButton, dac destinatarul mesajului de confirmare s fie
expeditorul mesajului cheie sau cel pe telefonul cruia se face redirecionarea (de cele
mai multe ori aceste dou numere coincid). De notat este ns faptul c, dac
utilizatorul nu dorete s i fie confirmat activarea, alegerea destinatarului este de
prisos, elementul de interfa trebuind inactivat. n momentul n care aceste elemente
devin active/inactive n timp real, n funcie de modul n care utilizatorul
interacioneaz cu interfaa (n cazul de fa configurnd setrile), se formeaz practic o
ierarhie de coninut ce sporete intuitivitatea aplicaiei.



41


Capitolul 5
Concluzii i posibiliti de extindere

n cadrul capitolului 3 al acestei lucrri au fost descrise pe larg cele mai utilizate
mijloace actuale de interaciune ntre dispozitivele mobile. Le vom compara n cele ce
urmeaz, lsnd ns la o parte SMS-urile deoarece sunt puin aparte, depinznd de
existena unui operator GSM.
Filtru Infrarou Bluetooth WiFi
Numrul maxim
de dispozitive ce
ce pot comunica
simultan ntre ele
2 2 n mod normal, ~40, dar
exist i puncte de acces
speciale ce suport pn
la 200 clieni
Viteza maxim
teoretic de
transfer
4 Mbps 24 Mbps 1 Gbps
(standardul 802.11ac)
Raz maxim
toeretic de
acoperire
5 m 10 m, n cazul
modulelor cu care sunt
echipate dispozitivele
mobile (exist ns
module mai
performante ce
acoper pn la 100 m)
32 m, de asemenea, n
cazul antenelor de pe
dispozitivele mobile
(majoritatea punctelor de
acces acoper ~100m, iar
cele long range cteva
sute de km)
Pre aproximativ
per modul
~$3 ~$10 ~$15
Lungime de
und
700 nm 1 mm ~12.5 cm ~12.5 cm
Frecven 430 THz

300 GHz
2.4 2.485 GHz 2.4 GHz and 5 GHz
42

Dup cum reiese din tabel, nu exist niciun motiv pentru care comunicarea prin
infrarou s mai fie folosit, fiind surclasat la toate capitolele (mai puin la pre, dar
diferena e irelevant). Tocmai de aceea, noile generaii de dispozitive mobile nu mai
dispun de module infrarou, tehnologiile Bluetooth i WiFi fiind suficiente. La o prim
vedere, ar prea c i tehnologia Bluetooth este depit, ns, ceea ce nu reiese din tabel
este faptul c aceasta consum de aproximativ 8 ori mai puin baterie dect tehnologia
WiFi [2].
Bluetooth-ul este util atunci cnd dispozitivele ce fac schimb de date se afl la o distan
relativ apropiat unul de cellalt iar viteza nu reprezint o problem deoarece datele
partajate sunt de dimensiuni mici de exemplu transferarea sunetului de la telefon la
handsfree sau a biilor de la tastatur i mouse spre staie.
WiFi-ul este mai potrivit pentru operarea reelelor deoarece ofer o conexiune mai
rapid, o raz de acoperire mai mare i, nu n ultimul rnd, este mai bine securizat
(dac este corect configurat) n comparaie cu Bluetooth-ul.
Posibiliti de extindere
Departe de a fi o aplicaie complex, din punctul meu de vedere Remote Redirect este o
aplicaie complet; m refer la faptul c, pn n momentul de fa, nu am avut nicio
idee de funcionalitate pe care s o mai adaug. Singurul lucru ce ar mai putea fi
redirectat sunt mesajele multimedia (MMS), prea puin folosite ns (doar 0.015% din
totalul de mesaje trimise sunt multimedia, restul text).
Din punctul de vedere al monetizrii, n momentul actual, aplicaia este prezent pe
Google Play Store n dou versiuni: gratuit, cu reclame i premium, fr. Nu exist ns
nicio diferen ntre ele la nivel de funcionaliti. ntr-un update viitor, vreau s limitez
numrul redirectrilor n versiunea gratuit pentru a constrnge utilizatorul s treac la
cea premium la un moment dat.
Aplicaia este disponibil n limbile romn i englez, adaptndu-se automat dup
limbajul telefonului. Pe viitor se dorete adaugarea suportului pentru nc dou limbi,
cel mai probabil francez i german.
Principalul obiectiv este ns portarea pe celelalte platforme mobile. Dup cum am
explicat n capitolul 2, iOS-ul, din motive ce in de securitatea clienilor, nu permite ca
43

telefonul s iniieze automat apeluri , chiar dac utilizatorul a dat n prealabil aplicaiei
aceast permisiune (deoarece multe numere cu supratax ncep cu caracterul *, acesta
fiind primul caracter al prefixului de redirectare). Aadar, dintre cele importante, rmn
platformele BlackBerry, Windows Phone i, eventual, Firefox OS.
Nu n ultimul rnd, se dorete realizarea unei cercetri mai profunde cu privire la
codurile (prefixele i sufixele) de redirectare n funcie de zon i operator, pentru a
putea fi setate automat de aplicaie, dup ce i se d permisiunea de a localiza telefonul;
momentan, acest lucru trebuie configurat manual din setri, mai puin pentru Europa,
Australia i Africa unde funcioneaz setrile implicite.

44


Capitolul 6
Referine bibliografice

[1] 3
rd
Generation Partnership Project 2 3GPP2 Short Message Service
http://www.3gpp2.org/public_html/specs/cs0015-0.pdf
[2] Rahul Balani Energy Consumption Analysis for Bluetooth, WiFi and Cellular
Networks
http://www.nesl.ee.ucla.edu/fw/documents/reports/2007/PowerAnalysis.pdf
[3] Andrew S. Tanenbaum Reele de calculatoare. Editura Byblos, 2003
[4] Jonathan Katz and Yehuda Lindell Introduction to Modern Cryptography:
Principles and Protocols (Chapman & Hall/CRC Cryptography and Network Security
Series)
[5] *** Coduri generice GSM
http://www.ubique.ro/gsm.html
[6] *** Formatul PDU al SMS-urilor
http://www.subnets.ru/saved/sms_pdu_format.html
[7] *** Tehnologia Bluetooth
http://www.bluetooth.com/
[8] *** Securitatea Bluetooth
http://electronics.howstuffworks.com/bluetooth4.htm
[9] *** Diferena ntre versiunile de Bluetooth
http://www.bluetoothreport.com/bluetooth-versions-comparison-whats-the-difference-
between-the-versions/
45

[10] *** Tehnologia bazat pe infrarou
https://learn.sparkfun.com/tutorials/ir-communication/all
[11] *** Tehnologia Wi-Fi
https://www.wi-fi.org
[12] *** Modurile de operare ale tehnologiei Wi-Fi
http://en.kioskea.net/contents/804-wifi-modes-of-operation-802-11-or-wi-fi
[13] *** Sistemul de operare Android
http://www.android.com
[14] *** Documentaia Android
http://developer.android.com/index.html
[15] *** Android: Intents and Intent Filters
http://developer.android.com/guide/components/intents-filters.html
[16] *** Android: Broadcast Receivers
http://developer.android.com/reference/android/content/BroadcastReceiver.html
[17] *** Android: Data Storage
http://developer.android.com/guide/topics/data/data-storage.html
[18] *** Android: Shared Preferences
http://developer.android.com/reference/android/content/SharedPreferences.html

S-ar putea să vă placă și