Tipo de Cdigo Elabora Modific Lista de Revisad
e documento
del documento
ado por Fe
caciones respec
e distribucin
do por
Guion
o
elipe Martnez lv
to a la revisin
GUIA
ALL
Revisin 1.0
varez
anterior
A DE R
LJOYN S
A
ETOS
SDK
Aprobado por
N total de pgginas
1. AL1.1. A1.2. D1.3. A1.4. M1.5. In 2. AL2.1. O2.2. M2.3. C2.4. C2.5. C2.6. C
LLJOYN OVEAlljoyn SDK ..Descarga del Arquitectura CModelo de Contegracin de
LLJOYN APP Overview AppManifiesto .....Cdigo ServicCdigo EventCdigo MensaCdigo Desco
ERVIEW ............................... SDK ..............Cliente-Servi
onexin .........el SDK ..........
(CHAT) .........p ...........................................cio Alljoyn ....tos .................ajera .............onexin .........
......................
......................
......................cio ............................................................
......................
......................
......................
......................
......................
......................
......................
NDICE
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
Pgina
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
......................
a 2 de 29
....... 3
....... 3
....... 5
....... 7
..... 10
..... 11
..... 15
..... 15
..... 17
..... 19
..... 21
..... 26
..... 28
1. A
[Video
Las usuariosocialeaplicacaplicac Alljoyintercaconectconexi [Vide En esun aspfuncionAceptaproxim
1.1. A
[Scree
ALLJOYN O
o Introducto
nuevas tecnos independiees no hace mcin mvil sincin porque esyn nace con e
ambio de datotividad peer-tin entre igua
eo Reto]
ste reto aprendpecto conceptnalidades relaa el reto en e
midad.
Alljoyn SD
enCast de W
OVERVIEW
orio]
ologas buscentemente des que consta
n incluir la constaremos destel fin de ofrec
os entre las apto-peer o de les.
ders a utilizatual as como
acionadas conel que te inic
K
Websites // V
W
an continuame la plataformatar esta realidnectividad continados al frac
cen una va deplicaciones sin proximidad
r el SDK de Ao las diferente la conectivida
ciars en el fa
Videos de Fo
mente que lasma que estn dad. Hoy en dn otros usuaricaso. e comunicacin un servidor apoyndose
Alljoyn en tus es opciones qad o el intercafabuloso mund
ondo ]
s aplicaciones usando. El
da no podemoos o un estud
n entre difer remoto. Alljoyen la tecnol
proyectos conque nos facilitambio de datodo de la com
s tengan unaauge de la wos contemplardio de esta ne
ente aplicacioyn se basa enoga WI-FI p
nociendo su fua este SDK ps en nuestras
municacin en
Pgina
a conectividadweb 2.0 o lasr el desarrollo ecesidad en
ones para facn el concepto para establec
uncionamientopara poder ints aplicacionesntre aplicacion
a 3 de 29
d entre s redes de una nuestra
ilitar el de una
cer una
o desde troducir . nes por
Gener El Scomunlas aplinterca Caract
Ejemp
Existenetworconectintegreeste ejcomundesperigual mtratasecomo
ralidades:
SDK de Alljoynicacin basadlicaciones. Alljambiar informa
tersticas: Alljoyns esConectividaSeguridad ConectividaBsqueda Multiplatafocomo C,C+operativo cOpera con
plo de uso :
en multitud drking , aplicactada o inteligeen dentro de sjemplo de cas
nicasen entre rtador para qumanera mediae de un controEl Internet de
yn nos propordo en conectijoyn hace incaacin sin nece
Open Sourcead Ad-hoc sinen las comunad peer-to-peede nuevos disorma , el SDK++ o Java lo como Windows los protocolos
e mbitos deciones de negente. Cada vezsu electrnicasa inteligente s mediante
ue al sonar todante nuestro Solador de dome las cosas.
rciona las hevidad Wi-FI dapie en la nec
esidad de cont
e podemos en nodo central icaciones. er actuando aspositivos o seK de Alljoynque posibilita s,Linux,iOses Wi-Fi y Wi-F
e aplicacin docioetc. Vaz es ms haba un sistema opodramos ha
e una reglas das las maanSmartphone ptica. Este co
erramientas nde proximidad cesidad de qutar con un inte
contrar el cd y en igualdad
a la vez como ervicios por pr esta dispon que podamoetc.
Fi-Direct.
del SDK de Aamos a ilustraritual que electoperativo basacer uso de A
preestablecidnas se comun
podemos controncepto de red
ecesarias pa que nos perm
ue las aplicacioermediario.
digo fuente en d de condicion
clientes y servroximidad. nible en difereos hacer uso
Alljoyn como pr un uso de Atrodomsticos
sado en LinuxAlljoyn para qudas , por ejenicase con la crolar todos esd de objetos in
ra poder aamita el intercaones se comu
GitHub. es.
vidores dentro
entes lenguajdel SDK desd
puedan ser loAlljoyn en el sus como un frig como pueda
ue los propios emplo , podrcafetera para stos electrodomnterconectado
Pgina
adir un protocambio de datouniquen entre
o de una mism
es de prograde cualquier s
os juegos , eupuesto de ungorfico o un laa ser Android. electrodomsamos prograpreparar un cmsticos com
os tambin se
a 4 de 29
colo de os entre s para
ma red.
macin sistema
l social na casa avadora As en stico se amar el caf. De mo si se
conoce
Ejemphttps://https://
1.2. D CompodremDuran Desdde Anddescarhttps://
los: /www.youtube/www.youtube
Descarga d
mo ya hemos cmos encontrar
nte el transcude la pgina odroid. Si es largarnos el SD/www.alljoyn
e.com/watch?fe.com/watch?f
del SDK
comentado el Sr diferentes verso del cursooficial de Alljoa primera vezK.
n.org/docs-and
feature=playefeature=playe
SDK de Alljoyersiones del So nos centraryn seleccionaz que visitamo
d-downloads/a
er_embedded&er_embedded&
yn es multiplatSDK segn esremos en la vamos la pestaos la pgina
android
&v=2nWezEj1&v=fN-h2is253
taforma por lo stemos trabajaversin de Ana Dosc/Downos solicitara
Sco 3o
que nos podrando sobre unndroid. nloads y sele que nos reg
Pgina
remos por lo qna plataforma
eccionamos la gistremos para
a 5 de 29
que nos u otra.
opcin a poder
Una proced Comocarpeta
Si nosJavadofile:///Frel/java
Dentrodurant Existe(http:/framewfuncionJava. E
vez que nos demos a descoo podemos aas:
C : ContienCpp : ContJava : Conpara trabajcontiene eAndroid. Unity: Conentorno de
s fijamos en laoc:
F:/Felipe/UNEDa/docs/html/in
o de la carpete el curso.
e la posibilida//developerwork JNI. El unalidad adicioEn la docume
hemos descomprimirlo paapreciar tene
ne las librerasiene las librer
ntiene las librejar con Androl modelo de c
ntiene las libre Unity3D
a carpeta Jav
D/Alljoyn%20Sdex.html.
eta Java/samp
ad de trabajar.android.couso de la impleonal pero parantacin oficial
cargado el ficra ver su contmos una car
s de Alljoyn coas de Alljoyn eras de Alljoyoid.Dentro de clases del SD
eras de Alljo
va/docs/Html p
SDK/SDK/alljo
ples/chat pod
ar con el cdom/sdk/ndk/i
ementacin na la mayora dl puedes enco
chero alljoyn-Xtenido. rpeta por cad
ompiladas en e compiladas eyn compiladas la carpeta Ja
DK de Alljoyn
oyn compilada
podemos obte
oyn-3.3.0-and
demos obtene
digo nativo d/index.html) ativa de Alljoyde los desarroontrar ms info
X.X.X-android
da lenguaje d
el lenguaje C.en el lenguaje s en el lenguaava/jar enconty que utilizare
as en el leng
ener el model
roid-sdk-rel/al
er la aplicaci
e Alljoyn hacpara acced
yn nos ofreceollos ser suormacin sobr
-sdk-rel.zip q
de compilaci
C++. aje Java y sertraremos el ficemos en nue
guaje C# para
o de objetos
lljoyn-3.3.0-an
n de ejempl
ciendo uso dder a cdigo un extra de rficiente con lare este aparta
Pgina
ue contiene
n as tenem
r las que utilchero alljoyn.estros proyect
a su uso den
del SDK en f
ndroid-sdk-
lo que analiza
del NDK de Ao nativo derendimiento y a implementac
ado.
a 6 de 29
el SDK
mos las
licemos jar que tos con
ntro del
formato
aremos
Android sde el alguna cin de
Arquitectu
odelo de arqu
La librera Un serviciocomunicac
n este modelocarga de realices de comun
ora de implem
Implementainterfaz grpropio serv
ra Cliente-
uitectura de Al
para el soporto en segundoin como pue
o las aplicaciozar la conect
nicaciones sop
mentar el servic
ar el servicio fico que su vico Alljoyn co
-Servicio
ljoyn se basa
te a la parte clo plano que pda ser el regi
ones se comuividad con losportados (Blue
cio en segund
Alljoyn comonica funcionmo parte de n
en dos partes
liente de las aproporciona toistro del servic
unican directams servicios deetooth y Wi-Fi
do plano tenem
o un servicio Analidad sea cnuestra aplica
s claramente d
aplicaciones odos los servcio o la bsqu
mente con el e otros dispos).
mos varias op
Android. Podecrear el serviccin.
diferenciadas:
vicios relacioneda de nuevo
servicio en seitivos por med
ciones dentro
emos crearnocio Alljoyn o p
Pgina
:
nados con el os dispositivos
egundo planodio de alguno
o de Android:
os una aplicacpodemos inte
a 7 de 29
bus de s.
o y este o de los
cin sin egrar el
2.
Dentro delencuentra e\alljoyn-3.3 Tomandopgina oficUna vez aservicio cuyo intenciReceiver cresponde asistema op
Broadcast el servicio a Ms adelacuando veaBajo esta imdisponible que no per
La siguientque podamproceso mpermisos dcualquier oPodemos e\alljoyn-3.3Bajo esta imdisponible que no rea
SDK podemen la ruta:
3.0-android-sdo como platafocial de Androidabierto el proya funcionalidn org.alljoyn.jcuya funcionaal evento BO
perativo Andro
podemos apreasociado que ante veremos amos la aplicamplementacila tecnologa
rmite esta imp
te posibilidad mos planificar s del sistem
de administracotro proceso qencontrar el bi3.0-android-sdmplementacila tecnologa liza esta imple
mos encontrar
k-rel\cpp\alljoyorma de desad (http://develoyecto podem
dad se encuenjni.alljoynandr
alidad se encOOT_COMPLE
id cuando enc
eciar como pr en este caso cmo podemacin demostrn solo podrem de Bluetooth lementacin.
el servicio Allpara que se a. Para pode
cin que nos ue corre bajo inario del servk-rel\alljoyn-3
n solo podrem de Bluetooth ementacin.
un ejemplo d
yn_android arrollo el bundoper.android.cos apreciar e
ntra en la claseroidext. Segucuentra en laETED o lo qucendemos nue
repara la inten es el de alljoy
mos integrar erativa. mos hacer uso ya que esta
ljoyn es creanarranque de r realizar estapermita copia Linux. vicio Alljoyn (a.3.0-android-smos hacer uso ya que esta
de creacin d
le de Eclipse com/sdk/indexen el manifiee AllJoynAndruidamente tea clase Startue es lo mismestro dispositi
ncin org.alljoyyn codificado este servicio d
o del canal deltima requie
ndo un binariomanera autom
a accin debear el binario y
alljoyn-daemonsdk-rel\cpp\bino del canal deltima requie
de servicio Al
que podemosx.html) abriremsto como tenroidExt y que rnemos declaServiceReceiv
mo la finalizacvo.Si abrimos
yn.jni.alljoynanen la clase Allentro de nues
e comunicacire un acceso
o o ejecutable mtico como seremos contar
planificarlo co
n) dentro de lan. e comunicacire un acceso
Pgina
lljoyn.El proye
s descargarnomos este proyenemos declarresponde a la
arado un Brover. Este brocin de la cas la clase del
ndroidext paralJoynAndroidEstra propia ap
n de WiFi al n a bajo nivel
(compilado esi se tratase r con un usuaomo si se trat
a carpeta del S
n de WiFi al n a bajo nivel
a 8 de 29
ecto se
os en la ecto. ado un
a accin oadcast oadcast rga del
a inicial Ext. licacin
no estar del API
en C++) de otro
ario con tase de
SDK:
no estar del API
3.
Indeservici Tamsolamerecurso
La ltima
administracson inevitarequiere deHay que tea lo que hvenden losestndaresBajo una iWiFi o Blue
pendientemenos del mismo
bin hay queente cuando os ser mayo
posibilidad cin deberamables si queree una compilaener en cuentahay que sumas terminales bas de Google pimplementacietooth , tenien
nte de la imp ser idntica
e valorar si detengamos nur si el servicio
es similar a mos contar comos acceder
acin especfia que cada faar las posiblesajo su propia ueden generan de este tipndo en cuenta
plementacin q.
eseamos queestra aplicaci
o est siempre
la anterior on un disposit a bajo nivel ca para la pla
abricante realizs alteracionesmarca. Estas
an incompatibipo podremos a las limitacion
que realicemo
e el servicio sin abierta yae activo.
pero ademtivo rooteado al API de la tataforma sobrza su propia ims que las pro pequeas difilidades con Ahacer uso delnes comentad
os del servici
se inicie comoa que evident
s de contaro desprotegidtecnologa Blure la que instamplementaci
opias operadoerencias que
Alljoyn. l canal de comas.
o Alljoyn la fo
o un procesoemente el co
Pgina
r con permisdo. Estos requetooth. Esta alaremos el sn de las tecnoras realizan pueda haber
municacin m
forma de invo
o ms del sisonsumo de ba
a 9 de 29
sos de quisitos opcin
servicio. ologas cuando con los
ediante
ocar los
tema o atera y
1.4. M El sigcomun
1.
2.
3.
4.
Modelo de
guiente esquenicacin hacie
El primer aplicacin establecer
DeterminarBusObject
Crear un id
Llegados a
a. Cap
b. Enimen
Conexin
ema represenndo uso del S
paso consistse pueda co
la comunicac
r los mtodos para impleme
dentificador n
a este punto tr
rear un grupplicaciones dencontrar otras
mplementar esncontremos en
nta los distinSDK de Alljoyn
te en crear nectar a un bin entre nues
s e interaccioentar esta func
nico que sea re
abajaremos d
po al que ote que nos hems aplicacionessta funcionalidn las proximid
ntos pasos qn.
un BusAttachbus o canal dstra aplicacin
ones que nuecionalidad.
representativo
de forma paral
ras aplicaciomos conectados por proximidad. De esta
dades.
que tienen l
hment (esto de comunicacn y el resto.
stra aplicaci
de nuestra ap
ela para:
nes se puedo mediante el idad. Utilizare
a forma nos p
ugar para qu
objeto nos pcin Alljoyn)
n soporta. Ut
plicacin.
dan unir e inenvio de sea
emos el objetpodremos un
Pgina 1
ue se produ
permite que para que se
tilizaremos el
nformar al reales. to BusListeneir a los grup
10 de 29
uzca la
nuestra pueda
objeto
esto de
er para os que
5.
1.5. I Una para p Tomoficial de Anpasos:
1.
2.
3.
Comunicar
ntegracin
vez que nos oder hacer us
ando como pde Android (hdroid median:
Aadir la lmanera mdirectorio liDeberamo
o Lio Li
Debemos cen C++ poente Java yPara carga
staticLog.i(TSystem.
En el caso
procedimiedeberemosque un camcaso de Prla documeofuscadorepara que n http://dev
rnos con otras
n del SDK
hemos descaso del SDK.
lataforma de http://developete el asistent
ibreras que s rpida de bs desde algu
os copiar las sb/alljoyn.jar b/armeabi/liba
cargar la librer lo deberemoy C++ y viceve
ar la librera a
{TAG,"Syste.loadLibrar}
o de usar ofuentos de ingens configurar embio de nomroguard el fichntacin oficia
es de cdigo o trate las cla
veloper.and
s aplicaciones
argado el SDK
desarrollo el er.android.comte o sobre un
contienen el aadir estasuno de los proiguientes libre
alljoyn_java.so
ra nativa de aos hacer uso dersa. adiremos el s
em.loadLibry("alljoy
uscadores deniera inversa l ofuscador pbres de estas
hero de configul de cmo hapara Android ses de Alljoyn
droid.com/gu
de nuestro gr
K de Alljoyn e
bundle de Ecm/sdk/index.htn proyecto ya
SDK de Alljos libreras a noyectos incluideras conserva
o
alljoyn desde de la librera a
siguiente cdig
brary(\"allyn_java");
e cdigo com o simplemeara que no ps impedira quracin es proabra que mo debers infon.
uide/develo
rupo.
l siguiente pa
clipse que podml) y habinda existente de
oyn as como nuestro proyedos en el SDKando la estruc
cdigo. La liballjoyn_java pa
go:
ljoyn_java\
o ProGuard ente para obterocese las claue Alljoyns seoguard.cfg y podificar este firmarte de cm
oping/tools/p
aso es prepara
demos descaronos generadeberamos re
las dependeecto es copiaK. ctura de directo
rera actual deara poder real
\")");
para protegerener un ejecuases pertenece ejecutase c
podemos encochero. En el mo debes con
proguard.htm
Pgina 1
ar nuestra ap
rgarnos en la do un proyectoealizar los sig
encias asociadarlas directam
orio:
e Alljoyn estlizar la comun
r nuestro cdutable menor tcientes a Alljocorrectamenteontrar un ejem caso de usanfigurar el ofu
tm
11 de 29
licacin
pgina o nuevo uientes
das. La ente al
escrita nicacin
digo de tamao
oyn , ya e. En el mplo en as otros uscador
El siguienaplicacin aplicacin q Code 43.-optimiza-dontusem-dontskip-dontprev-verbose -optimiza#REQUIRED#(NOTE: c# alljoyn# obfusca-dontwarn-keepattr-keepattr-keep claHT80-BA002-1MAY CONTAIGuide to Al-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla
nte cdigo mdemostrativa
que variarn s
. Sample pationpassesmixedcaseclpnonpubliclverify
ations !codD FOR ALLJOcould use n samples uated code wn org.alljoributes *Anributes Sigass org.all1 Rev. J 65 QualcIN U.S. AND INTEllJoyn Develass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.allass org.all
uestra la cona Chat. Resasegn la estru
roguard.cfs 5 lassnames libraryclas
de/simplifiOYN TO FUNCkeep classuse org.allwould not boyn.bus.**nnotation*gnature ljoyn.bus.a
comm Innovation CERNATIONAL EXopment Usingljoyn.bus.iljoyn.bus.Aljoyn.bus.Aljoyn.bus.Bljoyn.bus.Bljoyn.bus.Bljoyn.bus.Bljoyn.bus.Bljoyn.bus.Eljoyn.bus.Iljoyn.bus.Iljoyn.bus.Kljoyn.bus.Mljoyn.bus.Mljoyn.bus.Mljoyn.bus.Mljoyn.bus.Oljoyn.bus.P
nfiguracin dealtado en rojouctura de nues
fg file
sses
ication/arNCTION WHENs org.alljljoyn.bus.be seen) annotationCenter, Inc.
XPORT CONTROLg the Java SDifaces.** AnnotationAuthListenBusAttachmBusExceptiBusListeneBusObject*BusObjectLErrorReplyInterfaceDIntrospectKeyStoreLiMarshalBusMessageConMsgArg** {Mutable** OnJoinSessProxyBusOb
el fichero proo tenemos lastra aplicacin
ithmetic,!N USED WITHoyn.bus** samples so
n.** { *; }LLED INFORMATK Android-Sp{ *; }
nBusExceptiner** { *; ment** { *;on** { *; r** { *; }* { *; }
Listener** yBusExceptiescription
tionListenestener** {Exception*
ntext** { * *; } { *; } ionListene
bject** { *
oguard.cfg paas partes esn.
field/*,!c PROGUARD {*;} but t if you ch
TION ecific Conside
on** { *; } } } { *; } on** { *; ** { *; } r** { *; } *; } * { *; } ; }
r** { *; }; }
Pgina 1
ara el ejemplospecficas par
class/mergi
the hecked the
erations
}
}
12 de 29
o de la ra esta
ing/*
.apk
4.
-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla-keep cla#Keep all-keep cla-keepclas#-------------- #USER NEEAN EXAMPLE #Need to interface-keep int-keepclas*; } #Need to -keepclaspublic vo} #-------------- -keep pub-keep pub-keep pub-keep pub-keep pub-keep pub-keep pub-keep pubHT80-BA002-1MAY CONTAIGuide to Al-keepclasnative
ljoyn.bus.Sljoyn.bus.Sljoyn.bus.Sljoyn.bus.Sljoyn.bus.Sljoyn.bus.Sljoyn.bus.Sljoyn.bus.Vljoyn.bus.Vts ements org.class * imp-----------IFY WITH VA
AllJoyn intg.alljoyn.binterface osignal methclass org.aava.lang.St-----------* extends * extends * extends * extends * extends * extends * extends com.androi
comm Innovation CERNATIONAL EXopment Usingmbernames c
mbernames coid.content
mbernames coid.content
enum * { values();
alueOf(java
ements andrl android.o
quedara introd
permisos intro
ionandroid
SecurityViSessionLisSessionOptSessionPorSignalEmitSignature*Status** {Variant** VariantTyp
g.alljoyn.bmplements o----------
VALUES FROM
nterfaces abus.sampleorg.alljoy
thods alljoyn.butring);
---------- android.a android.a android.a android.c android.c android.a android.pid.vendingCenter, Inc.
XPORT CONTROLg the Java SDclass * {
class * {t.Context,
class * {t.Context,
a.lang.Str
droid.os.Paos.Parcela
ducir las mod
oduciremos los
d:name="and
olationListener** {
ts** { *; }rtListener*tter** { *;* { *; } *; } { *; }
peReferencebus.BusObjerg.alljoyn----------
M THEIR APP
and classme.chat.Chat
yn.bus.samp
us.sample.c
----------pp.Activitpp.Applicapp.Serviceontent.Broontent.Conpp.backup.reference.
g.licensingLLED INFORMATK Android-Sp
android.u
android.u
ing);
rcelable {ble$Creato
dificaciones ne
s siguientes:
droid.perm
tener** { *; } * { *; } }
** { *; } ct { *; } .bus.BusOb----------LICATION -
mbers of ttInterface le.chat.Ch
hat.AllJoy
----------y tion adcastRecetentProvidBackupAgenPreference.ILicensin
TION ecific Conside
til.Attrib
til.Attrib
r *;
ecesarias dent
ission.INT
Pgina 1
*; }
bject {*;} ------------ CHAT USED
the AllJoyn
hatInterfac
ynService {
-----------
eiver der ntHelper e ngService
erations
buteSet);
buteSet, in
tro del manifie
TERNET">
Es improcesdiferen Ya espuedesun ejem
staramos preps encontrar dmplo de aplica
spermissiname="andron>spermissiname="andrspermissiname="andr
Permissiospermissiname="andrespermis:name="andion>
uesto de que dientes a este
ra opcional pon el que se inios al definir ervicio de Alljo
stacar que Allj segundo planes con indep
parados para ocumentada eacin donde p
ionroid.permis
ionroid.permisionroid.permis
onrequiredionroid.permissiondroid.perm
no tengamos apartado.
odremos introdiciara este serla arquitectura
oyn.
joyn est dispano que ser endencia de l
poder hacer en la carpeta
podremos apre
ssion.CHANG
ssion.ACCES
ssion.CHANG
dtousethssion.BLUET
rmission.B
s conectividad
ducir un apartrvicio ya sea
ra cliente-serv
ponible para el encargadoa plataforma q
uso de la col Java/docs/Htender el uso d
GE_WIFI_MU
SS_WIFI_STA
GE_WIFI_STA
heBluetooTOOTH">ssion>
/uses
suprimir los pe
o de Alljoyn as aplicacin. Coidades a la h
o siempre exisnicaciones en
DK nos ofreces adelante ve que incluye e
14 de 29
es
ion>ion>
ermisos
s como omo ya hora de
stir un ntre las
e y que eremos
el SDK.
2. A
[Video
En estlas difAllJoynAceptaproxim
2.1. O
[Scree
UtilizaUna ve\alljoynque co La aptenganpor meaplicac Al inicpoder redirige
ALLJOYN A
o Introducto
te reto veremoferentes funcin y realizar tu a el reto en e
midad.
Overview A
encast app]
aremos la apliez que hemosn-X.X.X-androontiene el proyplicacin Chat n instalada la edio de Wi-Fi cin y la iniciaciar la a nueestablecer une a la pantalla
APP (CHAT
orio]
os un ejemploonalidades p propia implemel que te ve
App
icacin Chat s descomprimioid-sdk-rel\javayecto de Eclip tiene como f aplicacin y o Bluetooth . amos en dos sestra aplicacin canal de coa inicial de la a
T)
o de aplicaciodrs conoce
mentacin en teremos un ej
incluida dentrido el fichero qa\samples\chase de la aplicafinalidad estabse encuentren Abriremos la sesiones del en ,esta notificomunicacin caplicacin.
n que implemer mejor el mtus aplicacionemplo prctic
ro del propio Sque contiene eat acin Chat. blecer un chan prximos pa proyecto des
emulador paracacin nos in
con otros disp
menta el SDK modelo de clanes. co sobre com
SDK de AllJoel SDK podrem
at de conversaara poder est
sde Eclipse coa comprobar sndica que el spositivos. Si p
de AllJoyn. Mases que imp
municacin en
yn como aplicmos visualizar
acin entre ditablecer una vomo si te tratau funcionamieervico Alljoynulsamos sobr
Pgina 1
Mediante un replementa el S
ntre aplicacion
cacin demosr el directorio
istintos usuarva de comunase de cualquento. n se ha iniciadre la notificac
15 de 29
epaso a SDK de
nes por
strativa.
ios que nicacin uier otra
do para in nos
AntesexistenChanepestasimblpodem Una vque de Una ventre t Esque Una compo
de iniciar cuante. Como no el. Vamos a a superior dlico. Seguidam
mos apreciar cvez que tenemeseen participvez que los ctodos los clien
ema de Clase vez abierto onen el proyec
AllJoynSerEsta clasegestin desegundo plChatApplicEsta clase aadir o questado globel punto deactividad ,sChatInterfaEste interfa
alquier conver tenemos ningcrear un nueerecha y puls
mente pulsarecomo su estadmos creado el ar en la conve
clientes se hantes conectado
es el proyecto d
cto:
rvice e hereda de l eventos. La lano para esta
cation hereda de lauitar observadbal de nuestrae entrada de nservicio o listeace ace implemen
rsacin tendregn canal cre
evo canal de samos sobre
emos sobre el o cambia de canal de comersacin al canan conectado os.
de la aplicac
a clase Serv funcionalidadablecer un can
a clase Applicdores de evena aplicacin e nuestra aplicacner.
ta el mtodo C
emos que creaeado nos saldr
comunicacin el botn Se botn Start idle a adver
municacin sonal que hemoal canal de c
cin Chat pod
vice de Androd de esta clanal de comuni
cation de Andntos a la aplic iniciar el servcin al ejecuta
Chat para el e
ar un canal der una lista van para realizaet Chanel NaChanel para
rtised. lo tendremos
os creado medcomunicacin
dremos visua
oid e implemease permite imcacin.
roid e implemcacin. Esta
vicio Alljoyn. Aarse este mto
envio de mens
e comunicaciacia al pulsar ar esta acciname para esp iniciar el cana
que unir cadadiante el botn podemos ini
lizar el esque
enta el interfamplementar e
menta el interfclase nos ser
Adems el mtodo antes de
sajes.
Pgina 1
n o unirnos a sobre el botn nos dirigimopecificar un nal de comunic
a uno de los cn Join Channeiciar la conve
ema de clas
az Observer el servicio Allj
faz Observabrvir para guatodo OnCreatcargar cualqu
16 de 29
uno ya n Join os a la nombre cacin ,
clientes el. rsacin
es que
para la oyn en
ble para ardar el te()ser uier otra
2.2. M Comencont
DialogBuildEsta clasecualquiera HostActivityEsta clase de eventosObservableEste interfobservadorObserver Este interfaTabWidgetEsta claseaplicacin eUseActivityEsta clase de eventoscontroles pconversaci
Manifiesto
mo ya sabemotrar las propie
der e se utilizar de los botoney hereda de la s. e faz implementres de evento
az implementat e hereda de en ella se crea
y hereda de la s.En esta clapara unirnos n y un Listvie
os el manifiesedades que de
para constres del interfaz
clase Activity
ta los mtodos a la aplicaci
a el mtodo U
la clase Tabaran dos pest
clase Activity ase se imple a un canal ew con las inte
sto es el archiefinen nuestra
ruir los dilo grfico.
de Android e
os addObsern.
Update() para
bActivity de Ataas sobre un
de Android e ementa la fun
de comunicaervenciones d
vo ms impo aplicacin.
ogos persona
implementa e
rver() y delete
la gestin de
Android.Ser n contenedor
implementa encionalidad deacin , la cade los participa
rtante de un p
lizados que
el interfaz Obs
eObserver() p
eventos.
la actividad pde pestaas o
el interfaz Obse la pestaaaja de texto antes en el ch
proyecto Andr
Pgina 1
aparecen al
server para la
para aadir o
principal de o TabHost.
server para la a que conten
para introduchat.
roid , en el po
17 de 29
pulsar
gestin
o quitar
nuestra
gestin dr los cir una
odemos
Nos cAllJoyn En elotros mno teng
Ya en compoglobal ChatAcualquTambiUseAc pplicationandroidandroidandroidandroid:nayandroid:ter>
=".HostActowSoftInpul="AllJoyn
=".UseActiowSoftInpu
del manifiesto
ar como requein de conectimos suprimir
d:name="and
ssion.CHANG
ssion.ACCES
ssion.CHANG
dtousethssion.BLUET
rmission.B
cmo se utilizon de Androidrvicio Alljoyn.
nuestra aplicac
cipal TabWid
con"p_name"ation">
get"g/app_name"
me="androiname="andr
tivity"tMode="adj
nChatChan
vity"tMode="adj
o que guarda
erimos permisvidad Wi-Fi y los permisos
droid.perm
GE_WIFI_MU
SS_WIFI_STA
GE_WIFI_STA
heBluetooTOOTH">
"
Pgina 1
acin con el S
tividad con intn el supuesto ntes a este ap
TERNET">.LAUNCHER"
18 de 29
SDK de
ternet y de que
partado
uses
es
ion>ion>
cribir el estado a clase e cargar
ctivity y
/>
< Dentroservicicomun
2.3. C En lomodelo En eApplicahemos Nos fijpodemplano canal o pAbriremlos m Nos fse encmanejamanejaque en
and
s nos encontrabemos este s
="AllJoynSe>
oyn
s a ir viendo e implementar s como se deos esta clase q
Create() que cobtener el conAllJoynService
(){eate()");etApplicatnewIntent=startSerice==nulonCreate()
e para ver comases del SDK
Create() vemode ejecucin ymplementadoer actualizar edificar el inter
nChatChan
Service">
amos el servicservicio se e
Service">
el funcionamieel canal de coefina la clasque constituye
constituye el ntexto de la ae. Este servici
ionContext(this,All
rvice(intenll){:failedt
mo este servicK de Alljoyn.
os como de iny asociarle un
o en la claseel interfaz grrfaz grfico de
nnelUsage"
cio AllJoynSeencargara de
ento de la apomunicacin ese ChatApplice el punto de
punto de entaplicacin inicio ser el serv
t().getPacklJoynServicnt);tostartSer
cio forma el ca
nvoca al mtona cola de m BackgroundH
fico medianteesde otro hilo
">
ervice que se crear y ges
licacin y comentre aplicacioation para so entrada de la
trada a nuestciaremos un svicio de Alljoy
kageName();ce.class);
rvice()");
anal de comun
do startBusThmensajes que
Handler) , ad el objeto mH que no sea e
Pgina 1
e correspondestionar el ca
mo se ha utilizones. obreescribir laa aplicacin co
tra aplicacin.servicio en seyn que establ
;
nicacin invoc
hread(),este ser tratada dems tendreHandler. Recoel hilo principa
19 de 29
e con el anal de
zado el
a clase omo ya
. Como egundo ezca el
cando a
mtodo por un
emos el rdemos al de la
aplicacnos pe A coobservcualquinforma
Seguila aplic En lamensaconectaplicacBusOb Por mensaaplicac publiintenSyste
cin por esa rermite actualizntinuacin ob
vador o moduier cambio eacin del inter
damente creacacin y la geas ltimas lneaje de tipo ctar nuestra cin se reprebject para podltimo se invaje de tipo deciones remota
icvoidonCLog.i(TstartBumChatApmChatApCharSeqCharSeqIntentPending
nt,0);Notific
em.currentT
razn se implzar el interfaz gbtenemos unadelo, siguienden el modelorfaz grfico en
aremos la notiestionamos coeas invocamoconexin recaplicacin c
esenta mediader establecer voca al mtoscubrir recog
as mediante la
Create(){TAG,"onCreusThread()pplicationpplication
quencetitquencemesintent=ngIntentpecationnotTimeMillis
ementa el magrfico. a instancia dedo un esquemo ser rpidan nuestra aplic
ficacin que aon el mtodo ss el mtodo ccogido por elcon el bus dante el objeto el canal de codo startDisco
gido por el maa funcin doSt
eate()");;=(ChatAp
.addObserv
le="AllJsage="ChnewIntentndingInten
ification());
anejador mHa
e la aplicacima de MVC
amente notificcacin.
aparece en la startForegrouconnect() del l manejador
de comunicaco BusAttachmomunicacin. overy() del manejador de evtartDiscovery
pplication)ver(this);
oyn";atChannel(this,Tabt=Pendin=newNoti
andler que se
n para aad (Modelo-Vis
cado a la vis
barra de notifnd() para darlmanejador ende eventos
cin mediantement al que
anejador en ventos handle()
)getApplica
lHostingSbWidget.clangIntent.ge
ification(R
ejecuta en e
dirle nuestro ta-Controlado
sta-controlado
ficaciones cade la mxima pn segundo plahandleMessag
e la funcin dasociaremos
segundo planMessage() qu
ation();
Service.";ass);etActivity(
R.drawable
Pgina 2
el hilo principa
servicio a moor) de esta mor para actua
da vez que iniprioridad. ano que invocge() que finadoConnect().N
s un objeto d
no que invocue intentara de
(this,0,.icon,nul
20 de 29
al y que
odo de manera
alizar la
iciamos
cara un almente Nuestra de tipo
cara un escubrir
l,
Notifapp
2.4. C Una vservicireprescomo pestapredet UseAc Si Abrlayout usaremque esel intecompocheckiSeguidlas etiqentremA contFinalmgestion publipp
notificnotific
fication.FL
Log.i(TstartFo/**Weh*adva*remo*iss*/mBackgrmBackgr}
Cdigo Eve
vez que se ho de Alljoyn sentada por lase carga el i
as a las queterminada y ej
ctivity
imos la clase use de la pmos para escrsta clase implrfaz grfico. S
onentes del lan().
damente se inqueta que con
mos a la aplicatinuacin se in
mente se aadnar los evento
icclassUsprivatestapublicvoidLog.i(Tsuper.on
setCont
cation.setcation.flagLAG_ONGOING
TAG,"onCreoreground(N
haveanAlantageoftotechannestartinguroundHandleroundHandle
entos
a ejecutado ese cargara la aa clase TabWinterfaz grfic asociaremosecutamos el c
UseActivity yprimera pestaribir los mensementa el InteSeguidamenteayout use y
nvoca al mtontienen el nomacin mostraranvoca al mtodde el observados.
seActivityaticfinaldonCreateTAG,"onCreCreate(savtentView(R
LatestEvengs|=NotiG_EVENT|eate():stNOTIFICATI
lJoynhandthefacttlinstancep.er.connecter.startDi
el mtodo OnCactividad inicia
Widget.Si abrimco mediante es las clases Ucdigo asociad
nos fijamos eaa compuestsajes y un Listerfaz Observee se implemencomprobamo
odo updateChambre del Canaa los valores ddo updateHistdor a la aplica
extendsAStringTA
(Bundlesaeate()");vedInstance.layout.us
tInfo(thisfication.DNotificati
artForegroION_ID,not
lerthreadogetconn
esintheb
();scovery();
Create() de laal de nuestra
mos la clase yel layout maUseActivity y Hdo.
en el mtodo to de unas ettview que coner por lo que cntan diferentes si el servici
annelState() qal que creem
de Not set e tory() que actucin mediante
ActivityimAG="chat.vedInstanc
eState);e);
s,title,mDEFAULT_SOUion.FLAG_NO
ound()");tification)
drunninganectedtotbackground
a clase ChatAAplicacin. Eny nos fijamos in y que la HostActivity. F
OnCreate() ptiquetas ,dos ntendr los mcontar con ues manejadoreio de Alljoyn
que se encargmos y el estadIdle respectiualiza el Listvie el mtodo a
mplementsOUseActivit
ceState){
message,peUND|O_CLEAR;
);
atthistimthebusandwhilethe
Application y hn nuestro caso en el mtodonica funcionFijamos la pri
odemos ver cbotones , un
mensajes. Es n mtodo Updes de eventosesta iniciado
ga de actualizdo del mismo.ivamente. ew de los menddObserver()
Observer{ty";
Pgina 2
endingInte
me,sotakdstartfirestoft
hemos inicializo esta activido OnCreate()
nalidad es creimera pestana
como se estabna caja de teximportante fijadate() para res para los difemediante el
zar la informa. La primera v
nsajes. para que se
21 de 29
nt);
endinghe
zado el ad est vemos ear dos a como
blece el xto que arse en efrescar erentes mtodo
cin de vez que
puedan
androTextVKeyEvKeyEvmessastartournot
mHistoroid.R.layouListViehlv.setEditTexmessage
View.OnEditpub
ventevent)
vent.ACTION
age+")");
}});mJoinBumJoinBupub }});mLeaveBmLeaveBpub}});mChannemChanne/**Keep*ast
ted*wen*requ*/mChatApmChatAp/**Call*outl*just*/updateCupdateH
ryList=neut.test_lisewhlv=(tAdapter(mH
xtmessageBeBox.setOntorActionLblicboolea){if(actioN_UP){ StrinLog.;mChatAview.s}returnt
utton=(Button.setOblicvoidoshowDialo
Button=(BButton.setOblicvoidoshowDialo
elName=(TelStatus=
papointetheModelfneedto"cuiredservpplicationpplication
ldownintolivesitsAtempty.ChannelStatHistory();
ewArrayAdst_item);ListView)HistoryLis
Box=(EdiEditorActiistener()anonEditoonId==Edgmessagei(TAG,"usApplicationsetText("")
rue;
utton)findnClickListonClick(Viog(DIALOG_
Button)finOnClickLisonClick(Viog(DIALOG_
TextView)f(TextView
rtotheAforourMVheckin"wicesarer=(ChatAp
.checkin()
othemodeActivities
te();
apter(this,yId(R.id.us
dViewById(Rr(newextViewvieIME_NULL&&tText().toSonEditorAct
UserMessag
R.id.useJoiView.OnClic
(R.id.useLeView.OnCli
Id(R.id.useById(R.id.u
pliationclpplication.
pplication
)getApplica
itscurrentyactually
seHistoryLi
R.id.useMes
ew,intact&event.getString();tion():gote(message)
in);ckListener(
eave);ickListener
eChannelNamuseChannelS
lassaround.Whenevsoitcan
ation();
tstate.Sbealoto
Pgina 2
ist);
ssage);
tionId,tAction()
tmessage;
(){
r(){
me);Status);
d.Weuseverweareensureth
Sincetheofstatea
22 de 29
==
"+
this
at
modelnd
notif}
Una a la eshemossobre HostA Si Abrlayout en querefrescdiferenmtodoSeguidlas etiqentremFinalmgestionpublip
/**Now
fications*from*/mChatAp
}
vez que se haspera de la ins visto deberela pestaa su
Activity
rimos la clase host de la se esta clase car el interfazntes componeo checkin(). damente se inqueta que con
mos a la aplicamente se aadnar los eventoicclassHoprivatesta
thatwe'remothercompplication
a ejecutado elnteraccin delmos acceder perior derecha
e HostActivity ysegunda pestaimplementa
z grfico. Segentes del layou
nvoca al mtontienen el nomacin mostrarade el observados. ostActivityaticfinal
eallreadmponents.
.addObserv
l mtodo OnC usuario. El sa la pestaa sa se cargar l
y nos fijamos aa compuesel Interfaz Ouidamente seut host y com
odo updateChambre del Canaa los valores ddor a la aplica
yextendsStringTA
ytogo,w
ver(this);
Create() de la csiguiente pasosuperior dereca actividad Ho
en el mtodosto de unas etbserver por le implementanmprobamos si
annelState() qal que creem
de Not set e cin mediante
ActivityiAG="chat.
weareread
clase UseActivo sera crear cha para realostActivity.
OnCreate() ptiquetas y cuao que contarn diferentes mi el servicio de
que se encargmos y el estadIdle respectie el mtodo a
implementsHostActivi
dytoaccep
vity nuestro prel canal de cizar esta acci
podemos ver catro botones. Er con un mmanejadores e Alljoyn esta
ga de actualizdo del mismo.ivamente. ddObserver()
Observer{ity";
Pgina 2
pt
rograma se qucomunicacin n. Segn pu
como se estabEs importantetodo Updatede eventos p iniciado med
zar la informa. La primera v
para que se
{
23 de 29
uedara , como
ulsemos
blece el e fijarse e() para para los iante el
cin de vez que
puedan
pstartournotnotif
publicvoidLog.i(Tsuper.osetContmChannemChannemChannemChannemSetNammSetNammSetNampub }});mStartBmStartBmStartBpub}});mStopBumStopBumStopBupub}});/**Keep*ast
ted*wen*requ*/mChatApmChatAp/**Call*outl*just*/updateC/**Now
fications*from
donCreateTAG,"onCreonCreate(satentView(R
elName=(TelName.setT
elStatus=elStatus.se
meButton=meButton.semeButton.seblicvoidoshowDialo
Button=(BButton.setButton.setOblicvoidoshowDialo
utton=(Button.setEutton.setOblicvoidoshowDialo
papointetheModelfneedto"cuiredservpplicationpplication
ldownintolivesitsAtempty.ChannelStat
thatwe'remothercom
(Bundlesaeate()");avedInstan.layout.ho
TextView)fText("");
(TextViewetText("Id
(Button)fetEnabled(etOnClickLonClick(Viog(DIALOG_
Button)finEnabled(faOnClickLisonClick(Viog(DIALOG_
utton)findnabled(falnClickListonClick(Viog(DIALOG_
rtotheAforourMVheckin"wicesarer=(ChatAp
.checkin()
othemodeActivities
te();
eallreadmponents.
vedInstanc
ceState);ost);findViewByI
w)findViewBle");
findViewByItrue);istener(neewv){SET_NAME_I
dViewById(lse);tener(newewv){START_ID);
ViewById(Rlse);ener(newVewv){STOP_ID);
AndroidAppVCbasedapwiththeaprunning.pplication);
eltogeti,thismay
ytogo,w
ceState){
Id(R.id.hos
ById(R.id.h
Id(R.id.hos
ewView.OnCID);
(R.id.hostS
View.OnCli
R.id.hostSt
View.OnClic
pliationclpplication.
pplication
)getApplica
itscurrentyactually
weareread
stChannelNa
hostChannel
stSetName);
ClickListen
Start);ickListener
top);ckListener(
lassaround.Wheneversoitcan
ation();
tstate.Sbealoto
dytoaccep
Pgina 2
ame);
lStatus);
;ner(){
r(){
(){
d.Weuserweareensureth
Sincetheofstatea
pt
24 de 29
this
at
modelnd
Establ
ENamela clahostSefuncionHOST_
E
que imeventoproceseventosegundBackg
Elos dife
*/mChatApmQuitBumQuitBumQuitBupub}});}
lecer canal d
El siguiente p para asociar
ase DialogBuetChannelNamnes se _INIT_CHANN
Estos eventosmplementen el os (de primer sado por el Ho (de tercer ndo plano .EsroundHandler
Esta forma deferentes comp
pplication
utton=(Button.setEutton.setOblicvoidomChatApp
e comunicac
paso para podr un alias al cauilder y en me() y hostIni
lanzarn NEL_EVENT.
son procesad interfaz Obsenivel) que que
Handler de canivel) si deseaste evento dr. tratar los eve
ponentes que
.addObserv
utton)findnabled(trunClickListonClick(Vilication.q
cin
der estableceanal de comuneste caso tChannel() dlos event
dos en primeerver. Ya en eeremos tratar ada clase. En amos que el e tercer grad
entos es la m forman el m
ver(this);
ViewById(Re);ener(newVewv){uit();
er la comunicanicacin. La fal pulsar so
de la clase Chtos HOST
ra instancia pel mtodo Upd y se generara el caso de levento sea t
do ser proc
manera que tieodelo MVC (
R.id.hostQu
View.OnClic
acin ser puuncionalidad dobre el bothatApplication
T_CHANNEL_
por el mtodo date de cada ca un nuevo evla clase AllJotratado por ecesado con e
ene la aplicaciModelo-Vista-
uit);ckListener(
ulsar sobre ede todos boton se invocan. Mediante laSTATE_CHAN
Update de toclase se realizvento (de segoynServices pl hilo que se el Handler d
n para pode-Controlador).
Pgina 2
(){
el botn Set ones se encuearn las funa ejecucin deNGED_EVEN
odas aquellaszar un filtradoundo nivel) qu
podr generar est ejecuta
de la clase a
er comunicarsDe esta form
25 de 29
Chanel entra en nciones e estas
NT y
s clases o de los ue ser rse otro ndo en
anidada
se entre ma cada
uno degrfico
DdetallaJoin C
2.5. C Ya emensa Recibi El pues la fu En esChatA @psystectx.sctx.s
e los componeo o establecer De igual manearla. Ya solo nChannel de la
Cdigo Me
estamos coneajes que interv
ir mensajes:
unto de entraduncin Chat dsta funcin sepplication()
@BusSignalHpublicvoid
/**Seet*whyt**Theo*throu*signa*local
*/StringuMessageC
Log.i(TLog.i(T/**Alwa
em.*/if(ctxLog
sessionId); re}
/**Drop*/if(mJoLog
sessionId+ re
entes puede h el canal de coera la operativos quedara p
a primera pest
ensajera
ectados a un cvienen en el C
da de la aplicadel interface Ce obtiene infor
Handler(ifadChat(Str
helongcohisisneenlytimewghisifwlisus,wlyechoth
niqueNameontextctxTAG,"ChatTAG,"Chat
aysdropo
x.sender.eqg.i(TAG,"C;eturn;
psignalsooinedToSelfg.i(TAG,"C+"whennoeturn;
hacer su propomunicacin. va para el respulsar sobre lotaa para unir
canal de comChat.
acin cuando hatInterface srmacin del re
ace="orgingstring
ommentindeded.weallowaweareinmwealsofilhesignal.
=mBus.getx=mBus.ge():usese():messag
urownsig
quals(uniqChat():dr
onthehosf==falseChat():drotjoined
pio tratamiento sto de botoneos botn Starrnos al canal y
municacin y l
recibe un mesobrescrita en emitente y se
g.alljoyn.bg){
doJoinSessi
signalfromJoinedToSelteroutth
tUniqueNameetMessageCoessionIdisgesessionI
gnalswhich
ueName)){roppedour
tedsessioe&&ctx.seroppedsigntoself");
o para cada e
es sera la mrt Channel pay poder empez
istos para ve
nsaje por el c la clase Alljoy invoca al mt
bus.samples
ion()for
omthehoselfstate.hesignal
e();ontext();s"+mUseSIdis"+c
hmaybeec
{ownsignal
onunlesswessionId==nalreceive
evento ya sea
isma por lo qara iniciar el cazar a recibir m
r cmo se en
canal de comuynService . todo newRem
s.chat",si
moreexpla
tedsessioIfthessincewea
SessionId);ctx.session
choedback
lreceived
wearejoin=mHostSessedonhoste
Pgina 2
a refrescar el
que no entrareanal y sobre e
mensajes.
nvan y proce
unicacin esta
moteUserMess
ignal="C
anationof
onIDtopasourceoftaregoingt
;nId);
fromthe
onsessio
nedtoselsionId){edsession
26 de 29
interfaz
emos a el botn
san los
ablecido
sage de
hat")
asstheto
n"+
f.
"+
nicknnickn Si nomodo mtodoHISTOlas clasegundtodos botn s
Enviar El printrodueventose invo
}
/**Tok*nick*just*/Stringnicknam
name.lengthLog.i(T
name);mChatAp}
os fijamos en de regin cro addHisto
ORY_CHANGEases que impdo nivel para tlos mensajes solamente ca
r mensajes:
roceso para eucido un menso de editar texoca al mtodo
keeptheakname.Wetusethenickname=me=nicknah());TAG,"Chatpplication
la funcin nertica al produryItem() quED_EVENT. Eplementen el terminar invoc del Chat. El tmbia el emiso
enviar un mesaje en la cajaxto se encueno newLocalUs
pplicationwanttoi
uniquenam=ctx.sendame.substr
():signal.newRemote
ewRemoteUseucirse concure aade Este evento s interfaz Obscando a la funtratamiento de
or del evento q
ensaje empieza de texto quentra en el mterMessage()
simple,wdentifyth
meoftheser;
ring(nickna
"+strineUserMessag
erMessage() prrencia entre el mensaje
ser tratado eserver. Seguidncin updateHel evento es sque en este ca
za con la pule existe para etodo OnCreatede la clase C
wedidn'tfhemessagesender'sbu
ame.length(
ng+"recege(nickname
podemos ver procesos. Es
e a una en primera insdamente se
History() que asimilar al que aso es el serv
lsacin de la este fin. El cde() de la clasehatApplication
forceuserssourcesom
usattachme
()10,
eivedfrome,string);
que esta sinsta funcin te
lista y tancia por el generar el ectualizar el L se realiza coicio Alljoyn.
tecla Enterdigo del listenee UseActivity.n. Esta funcin
Pgina 2
stochoosmehow,soent.
nickname;
ncronizada y aermina invocaemite el mtodo Updaevento asocia
Listview que con la pulsacin
despus deer correspond. Podemos ven esta sincron
27 de 29
eawe
"+
acta a ando al evento
ate() de ado de ontiene n de un
e haber iente al
er como nizada ,
al iguaal prodque aser tObservasociaenviaraun everealiza
2.6. C Para de la alisteneHostAcemite eUpdateUserAcque lacorres
Si noseventoconexi
al que lo ocurrducirse concuade el mensaratado en priver ,en este
ado de seguna el mensaje ento HISTORara para un m
Cdigo De
terminar ya saplicacin. La
er correspondctivity. Podemel evento APPe() de las clactivity se ejec actividad se pondiente par
s fijamos en los de tercer niones.
ra con la funcurrencia entre aje a una listaimera instanccaso solo lodo nivel y teinvocando la
RY_CHANGEDmensaje extern
sconexin
solo nos queda salida de laiente al even
mos ver como PLICATION_Qases que impcutar el mto destruya , sera liberar los O
la clase AllJonivel que com
cin newRemo procesos. Es de salida y e
cia por el mo tratara la clrcer nivel parfuncin Chat(
D_EVENT parno.
n
ara revisar ea aplicacin sento de pulsacse invoca al m
QUIT_EVENT.plementen el odo finish() dee deber ejecuObservadores
oynService poo en las clase
oteUserMessasta funcin teremite el eventotodo Updatelase AllJoynSra terminar in() del interfacera actualizar
l procedimiene inicia al pucin se encumtodo quit() . Este evento interfaz Obs
el SDK se Andutar el mtod creados.
odemos ver ces anteriores
age() , por lo qrmina invocano OUTBOUND() de las cla
Service. Segunvocando a lae ChatInterfacel Listview de
to de desconelsar el botn
uentra en el de la clase Cser tratado e
server. As pudroid que deso OnDestroy(
como en el m tienen la fina
que acta a mndo al mtodoD_CHANGED_ses que implidamente se
a funcin doSce al mismo tieel Chat del m
exin cuando Quit Applicamtodo OnC
ChatApplicationen primera insues en las cstruir la activ) del ciclo de
manejador de alidad de liber
Pgina 2
modo de regino addOutboun
D_EVEN. Este lementen el generar el
SendMessageempo que se
mismo modo
realizamos laation . El cdCreate() de lan y seguidamstancia por el clases HostAcvidad, pero ane vida de la ac
la clase se irar recursos y
28 de 29
n crtica ndItem() evento interfaz evento
s() que genera que se
a salida digo del a clase ente se mtodo ctivity y ntes de ctividad
nvocan y cerrar
caseAPPLI
eHANDLE_AP
ICATION_QUI
PPLICATION_{LoIT_EVENT")mBmBmBmBmBst}brea
_QUIT_EVEN
og.i(TAG,";BackgroundHBackgroundHBackgroundHBackgroundHBackgroundHtopSelf();
k;
NT:"mHandler.h
Handler.leaHandler.canHandler.unbHandler.relHandler.exi
handleMess
aveSessionncelAdvertbindSessioleaseName(it();
age():();ise();n(););
Pgina 2
29 de 29
Recommended