Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Seguridad y posicionamiento
prcticamente
desprotegidos ante este tipo de aplicaciones. Por lo tanto, los usuarios han de ser
muy cautos antes de instalar una aplicacin.
153
la
Si queremos que una aplicacin tenga acceso a partes del sistema que
pueden comprometer la seguridad del sistema hemos de utilizar un modelo
de permisos, de forma que el usuario conozca los riesgos antes de instalar
la aplicacin.
1U
aplicaciones sean tratadas como una sola. por razones de seguridad, ambas
aplicaciones han de estar firmadas con el mismo certificado digital.
utilizados en Android:
&
CALL-PH0N
$rzi*i*, .v s*r l*::+ r4s+ t*tzr;tg, t].,....i,..1 {s#vfil}r litr:l*r
iirii:iirr]:r{}itL,ii} ill t:tjr}i;f {:}ii iJl,l ir:,:i1,;::'l{: (muy alta) Permite realiza llamadas
&si*;r, i*ir* x s*r l*x tltt*'tir:rnttri {-lt,t* {3i:rt:4!:.tt (muy alta) Permite a la aplicacin mandar SMS.
sEND-sMs
t:ti\.rit:;':::.,?::i:iji:.11:.li:)
READ-OI/NE*-OO1Offi Tt *rtf+r*r:*+iEBl'l
ff*l*qr*f
f*+r rJiliii:r
i:< {:{:rrii:{)l::i
&
Tu istfrr'r:,r*!*n #*r**r:r*l
rrr*rli:ir 'Jii.** J*
155
#g*
ubicn**flr
:r$cx*lr
lr
*b!*;tr;ir:r:
i*p$i
i*i
**4*rrarni**t**
*J*l
sist*ma * #*cribir
:.1:f
i*l*i**es
SET-PREFERRED.-APPL|CATtOt*S
*t-{*rr*rl,lientns
ds? ss?*ry*a
* *stcbiscer
156
.
.
>
//>
'inai:ri-fest.:,.
nan i i
es
t pacicaqe=',
..:::ermisgcn ai:Croiii:
arr-dr: c i-.il :
1.
all+.1. = ri:rli
tiame= !tconl
i::.'r..:
i.rrg,/
pai.perviev. eervicios
VEi \iIIEO;S'
+-t-'i...$la-i::.j-."
lrrrlr:oj.rl:rJi::,s':::r'i-;ii.cft=rr(tr$irj.nq/d.rlsr-:r.;:a:i.r:r.',
anrlrc.ld::err'1es!crrC:rctip="andrcid.perr,rrsrsicn-cJrcLiF.:LaST
a:tl:r't::.i.11
-.',"1i*;li.
l"jolEYs
:i:r'ct*<:i:..ic::n)..evel.-"-ln..Jerol,tr.i",/:-'
esl:.
157
dentro
aplicacin.
El
atributo
fiOn;al
el
permiso.
danqercus
El usuario es advertido.
siqnatr:re
stri.ng
dema
rrd.cr <-,/ s
tri
rt
n-q >
crea una nueva actividad en este proyecto con nombre ver.vi.cteo y copia el
mismo cdigo de la actividad N'.:evoi?errni.so. En el ejemplo real esta actividad
158
:erp
(
Ii
c.:;a L
_C
|.
c.i
n... >
i!-i i''r/
.r ,i
:!.
I actvt^>
.. /"appl icat ion)
<
<7in;:ri..:.fesl>
: i.I$;.tr'?r-.:r:mi:sc
: Anclrcidl .5
A;rp I :i c::a l- it:rn rialrle : i.f sa r perrrii sc
pii (:k lr]e n;lyle : o ]..q, e--z ;rni> e, lis:;;l r.>e r.ni.i. r:,:>
Create A.ct.ivit,y : UsarEermisc
I"lir: llK Versiol::
Puilcl
1.
-1
Abre
el
<LirreraLa.,'oui
el
>:
.: liii t:
1.
r:i
>
id
s: i_
. Bu t t on] 7j
ener. i ) {
159
Sverrid.e
It
startAct ivit:y i ) ;
(
l);
NOTA: En este cdigo no se han incluido los import, pulsa Ctrl-Shifi-O pna
aadirl o s de forma aut om
t ic a.
esr . xnrl l
<marifesh.,.>
<uses -permr-sst_on
android
</manifest>
Comprueba cmo ahora se accede aI servicio sin problemas.
160
Seguridad y posicionamiento
6.2. Localizacin
La plataforma Android dispone de un interesante sistema de posicionamiento
que combina varias tecnologas:
ApFl
:i.
:i.
Facka
F1:!.n
f:iK V+::r'ri.i.cn:
.1.
c_,r)
161
a la
prohibido para las aplicaciones. Si estas desean hacer uso de este servicio han de
solicitar permisos especiales. Estos permisos hay que indicarlos en el fichero
A::cii:ir:ir,rr:r:ie*:r-.2.m1. En concreto esta aplicacin necesita
localizacin precisa y localizacin imprecisa:
los permisos
de
E S E 0 *r
P+misdors
*ses Finnission
f:-,add;l
fui;;;1
iiur*iJ
t sr"t,l
l fl
,"l,iilir.'tlppr'*iii
'Attr*tr{esfsrtcetPrmisr
@ Thc useq-permission tag rcqueste
N'-"
"nJi"iJ.p"'*iuiio".tciii-caniE-Lo
I*:.f,i::nfjffi;*"#;r""itqp F1*,iil
como la que nos proporciona el GPS, como una menos precisa, como la
proporcionada por las torres de telefona celular.
162
Seguridad y posicionamiento
ffiBA
ffiffiffiffi
nlz{r
,l'*xr-v.i.err.
con scro//.
xrrrl pofi
<r'ir:o.i. .L.vi.ci+
zmla
<i
. i:cxni'a.tk
i're.,1:ldrti
<i '.
!.:.
t...w
":>
.,'l'ezt-V i el.r
" G + id,t sei ida "
androcl : laycut_width= " fi i __pci-err t',
;a:ldroiri: layc:rrl- heigl:t:= "rli,.'p_l-'oril tini- " f :,
and.roi.o t tC=
':
'
,1.
i.
i. ,?
,L,r
:..
163
tl a =
sCvt
r:
::.-
i.
cle
publlc voLd
(LOCATION_SERVICE,
);
el
ObjetO rnanejaCor
de
tipO
La siguiente lnea hace una llamada al mtodo log O Que ser definido ms
1U
Seguridad y posicionamiento
devuelta por este proveedor. Es lo que se hace en las ltimas lneas del programa.
El mtodo rnestralocal.j-zi) ser definido ms tarde y muestra en pantaila una
determinada localizacin.
<j*
.i.i :iril:i.ci.i<::!_iirr
{:,Overricte
super.r::ni?*use{);
j1,/ DeFacti.v-tiitli.j rioitf:j-car-c1a)ltes
manej
Fala ahorr.r:
ba,t.,e.ria
l
.r
l':r::<>iloi:l il<,t
l:'r.ri:r.1.
i.c
vc'r
i.i.:
:i.lli::<lt:.:
:;z
].,:ic'i.ti: :i.()nI.,::.f.!i:.erle::
)::
i:'i:::: :!.rilo:::i:;<:,:i.iill
iSLr:':j.ii. i:;.rlieri;,ri i
sal ida " app*nr:1 ( r::,:,dena .r ,' \ r' )
r:;<lt:;:,r
f)i,i:t'i;
private void
i:1oriit:
1.r:re
,.
165
el.se
1og {lccaL io:r . LoSt:r'iilg
+. " \n" ) ;
getPowerRequiremenE=
P
[MaLh
"
r.
. ii?i::x (
0,
r'emerrl { } i
uno mejor o deje de funcionar el actual. Sera buena idea llamar de nuevo aqu al
mtOdO
get.tsestPi'cvirier ( i .
ffi
Stro'arView
-'--*"*-"i
I
I
i};'
General
;i
Android
$ 0euicer
......t
ErnulatorControl
(l iile <:h:r*r
@ xeap
fl:
i
i
[Jre Fl
i.*crilt
, RElusrL
Relourre Explorer
s!:
Threads
sef*ted rie*
;ed;;1
Aparecer una ventana como la siguiente:
Lcction Contrelj
t'tr"*t
,t.
f,e
,,l.xul-"'.
Dsimal
:'''l Serageimal
LongituCe -l?.0840*5
Latitude i.ils
- ":l
:
:Kdi
167
a.
En primer lugar, para hacer uso de este servico necesitas una clave de
Google Maps.
en
Tras registrar la aplicacin se nos entregar una clave que tendremos que indicar
en la aplicacin.
Realmente vamos a necesitar dos claves diferentes, una durante el proceso de
desarrollo y otra para la aplicacin final. La razn es que se genera una clave
168
htto://code.qooole.com/p/android/issues/detail?id=91
Seguridad y posicionamiento
i.rr1lrte.r 1_9t
::
General
Android
Buitd Settings:
i-?i Autornaticafly refreh F.erources andi sr.ets folder on buil.d
irii,
D0t{s
Build output
Lunch
i,-l sitent
LogCat
F.i Norml
Llsage Stats
l''l:'y'erbose
r, Ant
,1 Data ManBqement
:,
:, Installr'Update
:
Defautt debug
keyrt** Ci{""rrXi"*-Jr.r'iJrriJlJ,$";.h"f*;;;
Help
CustDrn dbu g kryst@cl
Java
Java
EE
- j.
LSt - {.gyi-i.-r}:r:l
169
La contrasea es
siguientes
16
bytes
expresados
en
hexadecimal:
Tendrs que introducir tu huella digital. Y el usuario de Google Mail que realiza
la solicitud. Si no dispones de un usuaro en Google puedes crear uno nuevo en
un par de minutos. El resultado final se muestra a continuacin.
Grtdra pd uscrblC
Tu clave es.
i
l{b5a f HcRIIdAO
ASR
I I 6 rUqs t
6 U
2Pl,l5 AT}f
j UkKg
Esta claw es vida para todss las a$icaciones rmadas con el certificado cuya huella dactilar sea:
j
00-FE-?g
170
Seguridad y posicionamiento
P::o j e* t. ne ii3 : E.i einpri. or;o.i(ii. ci.iali s
Br-ri:d Tar-gec: Gooql e APis i.6
"frppi j.c-'-i- j-on nale: ii je:l:ir:: :;o{lq:e
}ia}r..1
jern>i.ogoi:;c'i.eil;ipr,r
-a$ruriididhfi h*iJ}nih*t
iifltiii+r.
&pplktkmTa-q{l*
al: -thc !ppug&s! tag desffibes applcation-level componnt: contrined in thc packegg
as
AFFit{tr:ioe A{{rbrtls
N.me
rheme
Lrbcr @;#;;;#-;;
rcoo Jii*'iii.on
Dercrip{ion
Br**-
ls**]
n.r.oo.
lei."'*r.-j
Penietent
l[.",;
rr"ur.a
t33
oebussable
G-,Jt--l
L.:-:;
l:
Prs(er:
affinr\
ji
Mangespcactieify
A.fiow cea
,ffi;
urerdeta
lE4;'-j
Apliratim$odm
: . - * u-n*El!is-
Pemission
Task
E El E
@ lE,O
- - - -
(Qcon.ercoete.android.map:(usetiu'".y1
6 *"
[niJ
&ttribt*lbrn,4auEle.md:cid.rap*{LleslibRr!l
lY::-'::::t-e'-t:T:y::tj-j'
r'1;1..
IE
17'l
,/,i
schemas
anroid.
com,i
apk,/res,/androic"
package="c:rg.ex;lrnp).e.ejernpJ.cgc-ogJ.emaps,android:versoncode="1."
android: versionName='r
app1 i cat
.:
icn
f. . 0'r >
<ii:t. j.v
j.
iy android
7'lapp1
i ciet i <in:,
ion android
nare=
"
android. permi
ss
<uaeg -permisel"on
...
<uae
.</malif est
COARSE _.ITOCATIO!
/>
>
*'
i vrlaycrit
t' ./
>
SUStitUye'.">.' Tu
obtenida en
el
172
privette Mapcontroller
MapActivity
mapCont.rol1er,.
pri'v'aLe MapView mapView;
tr i. i,';r t- e Locat j_onManager locat ionManager
oncreate (bundle ) ;
setContentview (R. layout . main) ;
mapview = (MapView) findViewByrd(R.id.mapa)
;
mapView. setBui 1 t Inzoomcontrol s ( t r.lre ) ;
Ii
;silper'
setsatellite
mapView.
i,.:.:1.
.i.':t.
.:<.,r.;lr
true) ;
i ii;.r:t.i.vtt. vi3ta sat.j. i.te
mapview. set.St.reetview(false) i
i r,jjesacliva ;jt.rr::et_Vier
mapView.setTraf f ic (j:i:.1.se)
i i.ite-:;;<::Li.y;.. j.if i;,r.lr;.ci_:.r <j+: t_r..f:.j.<::,::
mapcontroller = mapView.getController O ;
mapcontroller.setZoom(14) ;
1i Zoc:,:, 1 ver tccc el mu::<io
locationManager = (LocationManager)
getsystemservice ( conLext, LOC AT I oN-$ ERV I C E) ;
1
);
i_rr.'ri f
;.'I.
e ;
Locationlistener
tr,Cr,.erriae pi_ri:lic
'.'j1\erri.e p'.rbl
ri).,'rr,.^.i.
ic
onproviderDisabled(String provider) {}
{}
de
t7,
{*fl
174
ffiItrEf
Seguridad y posicionamiento
Eiptsbie
1. En el ejemplo
2.
resultados.
Siests utilizando un telfono real reemplaza en el cdigo anterior
Locat ionManager . GP S _ PROV IDER pof
private
n::'ei^rsi)j.e
drawableAstero ide
| :i
.l -
drawableAsteroide [2 ] =
<'jiln
t:e.rt:
t)r.,rab f e
P. . d
lar+a}: j- e .,r...; l: i
. (T*i:11-e.(::o1.1!'.::es: (
r:;_t
<jei
ge i:D rar.iab i e ( lll . i:t:r; w l) i e .,i t:: i.: r::.t: r:: I r.ii:.:.7 ) ;
i:)()il.t.*xi::.rjcl:Rt3,:11y<:t]$ ( ) .
clirri.[j:i:'aw:.]L)::.e {R. <1::';,iv;,i}:l.ii.: " ,;si.,;r',:,.;.,.:i:l j ;
Aade
al
el
siguiente
cdigo:
int tam;
if (Asteroides.get (i) -getnrrawableO l=drawableAsteroide [2] ) {
if (Asteroides . get ( i ) . getDrrawable ( ) ==drawableasteroide [ 1J ) {
tam=2;
] else
tam=1;
175
2.
176
fragmentos.
A qu puede deberse este problema? Prueba a poner la palabra
reservada $)::!'::hrorii.zer: delante del mtodo rlei.;{::r'r:y*Aster'o:i<ie ( )
verfica sise ha corregido el problema.