documentacion android
TRANSCRIPT
-
8/19/2019 Documentacion Android
1/34
package com.ejemplo.bluetooth;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.UUID;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothServerSocket;
import android.bluetooth.BluetoothSocket;
import android.content.ontext;import android.o!.Bundle;
import android.o!."andler;
import android.o!.#e!!age;
import android.util.$og;
public cla!! onexionB% &
private !tatic 'nal String %A( ) *Servicio+Bluetooth*;
private !tatic 'nal boolean D ) true;
,, -ombre para el regi!tro SD cuando el !ocket !ea creado
private !tatic 'nal String -A#E ) *BluetoothDEB*;
,, UUID Identi'cador unico de U/I para e!ta aplicacion
private !tatic 'nal UUID #0+UUID ) UUID.1romString2*3333443453333543335
633353363789B:8B*33c9a??* 2*3333443453333543335633353363789B:8B*
-
8/19/2019 Documentacion Android
2/34
,, ampo! de coexion
private 'nal BluetoothAdapter AdaptadorB%;
private 'nal "andler m"andler;
private Accept%hread "ebraDeAceptacion;
private onnect%hread "iloDeonexion;
private onnected%hread "iloonetado;
private int E!tadoActual;
,, on!tante! @ue indican el e!tado de conexion
public !tatic 'nal int S%A%E+-O-E ) 3; ,, -o !e e!ta haciendo nada
public !tatic 'nal int S%A%E+$IS%E- ) 4; ,, E!cuchando por conexione!entrante!
public !tatic 'nal int S%A%E+O--E%I-( ) >; ,, Iniciando conexion !aliente
public !tatic 'nal int S%A%E+O--E%ED ) :; ,, onectado con undi!po!itivo
,, #E%ODOSFFFFFFFFFFFFFFFFFFFFFFFFFFF
,,55555555FFFF5555#E%ODOS -O A$%E/ADOS55555555FFFF5555
,GG
G on!tructor. repara una nueva !e!ion para la conexion BluetoothSmartphone5Di!po!itivo
G Hparam context El identi'cador UI de la actividad de context
G Hparam handler Un "andler para enviar men!aje! de regre!o a laactividad marcada por el UI
G
G G,
public onexionB%2ontext context "andler handler< &
AdaptadorB% ) BluetoothAdapter.getDe1aultAdapter2
-
8/19/2019 Documentacion Android
3/34
m"andler ) handler;
J
,GG
G Actualiamo! e!tado de la conexion B% a la actividad
G Hparam e!tado Un entero de'nido para cada e!tado
G,
private !nchronied void !etState2int e!tado< &
E!tadoActual ) e!tado; ,, $e enviamo! al "andler el nuevo e!tado actual para @ue !e actualie en laActividad
m"andler.obtain#e!!age2#ainActivit.#en!aje+E!tado+ambiado e!tado54
-
8/19/2019 Documentacion Android
4/34
,,ancela cual@uier hilo @ue @uiera hacer una conexion
i1 2"iloDeonexion K) null< &"iloDeonexion.cancel2
-
8/19/2019 Documentacion Android
5/34
!etState2S%A%E+O--E%I-(
-
8/19/2019 Documentacion Android
6/34
-
8/19/2019 Documentacion Android
7/34
r ) "iloonetado; J
,, /ealiar la e!critura A!incrona
r.Lrite2out
-
8/19/2019 Documentacion Android
8/34
m!g.!etData2bundle
-
8/19/2019 Documentacion Android
9/34
public void run2< &
i1 2D< $og.e2%A( *omenar "iloDeAceptacion * N thi!
-
8/19/2019 Documentacion Android
10/34
tr &
!ocket.clo!e2
-
8/19/2019 Documentacion Android
11/34
G E!te correra a travV! de la conexion a !ea e!tablecida o 1allada
G,
private cla!! onnect%hread extend! %hread &
private 'nal BluetoothSocket mmSocket;
private 'nal BluetoothDevice mmDevice;
public onnect%hread2BluetoothDevice device< &
mmDevice ) device;
BluetoothSocket tmp ) null;
,, Obtiene un BluetoothSocket para la conexion con el Di!po!itivoobtenido
tr &
tmp ) device.create/1commSocket%oService/ecord2#0+UUID
-
8/19/2019 Documentacion Android
12/34
,, A@ui !olo recibiremo! o una conexion e!tablecida o una excepcion
mmSocket.connect2
-
8/19/2019 Documentacion Android
13/34
J catch 2IOException e< &
$og.e2%A( *clo!e2< o1 connect !ocket 1ailed* e
-
8/19/2019 Documentacion Android
14/34
I-U%+Stream ) tmpIn;
OU%U%+Stream ) tmpOut;
J
,,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
,GG
G E!cribe al Stream de !alida conectado
G Hparam buWer $o! bte! a e!cribir
G,
public void Lrite2bteT buWer< &
tr &
OU%U%+Stream.Lrite2buWer
-
8/19/2019 Documentacion Android
15/34
public void run2< &
$og.e2%A( *omenar "ebraconectada*T;
int bte!;
Lhile 2true< & ,,#antiene e!cuchando el InputStream mientra! e!teconectado
tr &
,,$ee de!de el InputStream
bte! ) I-U%+Stream.read2buWer
-
8/19/2019 Documentacion Android
16/34
import android.o!.#e!!age;
import android.o!.Qibrator;
import android.annotation.Suppre!!$int;
import android.app.Activit;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.util.$og;
import android.vieL.#enu;
import android.vieL.#enuItem;
import android.vieL.QieL;
import android.Lidget.Button;
import android.Lidget./adio(roup;
import android.Lidget.%oa!t;HSuppre!!$int2*"andler$eak*<
public cla!! #ainActivit extend! Activit &
QieL botonE;
/adio(roup rg;
int checar;
public !tatic 'nal String %A( ) *$EDv3*;
-
8/19/2019 Documentacion Android
17/34
public !tatic 'nal boolean D ) true;
,, %ipo! de men!aje enviado! recibido! de!de el "andlerde onexionB%
public !tatic 'nal int #en!aje+E!tado+ambiado ) 4;
public !tatic 'nal int #en!aje+$eido ) >;
public !tatic 'nal int #en!aje+E!crito ) :;
public !tatic 'nal int #en!aje+-ombre+Di!po!itivo ) ;
public !tatic 'nal int #en!aje+%OAS% ) 7;
public !tatic 'nal int #ESSA(E+De!conectado ) ?; public !tatic 'nal int /EYUES%+E-AB$E+B% ) =;
public !tatic 'nal String DEQIE+-A#E ) *device+name*;
public !tatic 'nal String %OAS% ) *toa!t*;
,,-ombre del di!po!itivo conectado
private String monnectedDevice-ame ) null;
,, Adaptador local Bluetooth
private BluetoothAdapter AdaptadorB% ) null;
,,Objeto miembro para el !ervicio de onexionB%
private onexionB% Servicio+B% ) null;
,,Qibrador
private Qibrator vibrador;
,,variable! para el #enu de conexiCn
private boolean !eleccionador)1al!e;
public int Opcion)/.menu.main;
-
8/19/2019 Documentacion Android
18/34
-
8/19/2019 Documentacion Android
19/34
ca!e /.id.radiorecamara>M !end#e!!age2*eZr*
-
8/19/2019 Documentacion Android
20/34
-
8/19/2019 Documentacion Android
21/34
break;
JJ J J
-
8/19/2019 Documentacion Android
22/34
Intent enableBluetooth ) neLIntent2BluetoothAdapter.A%IO-+/EYUES%+E-AB$E
-
8/19/2019 Documentacion Android
23/34
i12!eleccionador))1al!e
-
8/19/2019 Documentacion Android
24/34
i1 2Servicio+B% K) null<Servicio+B%.!top2
-
8/19/2019 Documentacion Android
25/34
!Litch 2m!g.Lhat< &,,FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
ca!e #en!aje+E!critoM
bteT LriteBu1 ) 2bteT< m!g.obj;,,buWer de e!critura...
,, on!true un String del BuWer
String Lrite#e!!age ) neL String2LriteBu1
-
8/19/2019 Documentacion Android
26/34
-
8/19/2019 Documentacion Android
27/34
J;,,8in de "andler
J,,8in #ainActivit
MAINT ACTIVITY PRINCIPAL
//Librerías que se van a utilizar
import android.app.Activit;
import android.content.ontext;
import android.content.Intent;
import android.databa!e.SY$Exception;
import android.o!.Bundle;
import android.vieL.QieL;
import android.vieL.QieL.Onlick$i!tener;
import android.vieL.inputmethod.Input#ethod#anager;
import android.Lidget.Button;
import android.Lidget.Edit%ext;import android.Lidget.%oa!t;
public cla!! #ainActivitprincipal extend! Activit&
DBAdapter dbAdapter;
Edit%ext et4et>;
Button btentrar;
Button btnuevo;
protected void onreate2Bundle !avedIn!tanceState< &
!uper.onreate2!avedIn!tanceState
-
8/19/2019 Documentacion Android
28/34
et4) 2Edit%ext< 'ndQieLBId2/.id.edit%ext4) 2Edit%ext< 'ndQieLBId2/.id.edit%ext>
-
8/19/2019 Documentacion Android
29/34
-
8/19/2019 Documentacion Android
30/34
la ba!e de dato! de e!a 1orma el u!uario la contra!e^a @ue!e ingre!C a !e pueda utiliar
public void onlick2QieL arg3< &
Input#ethod#anager imm ) 2Input#ethod#anager<getS!temService2ontext.I-U%+#E%"OD+SE/QIE
-
8/19/2019 Documentacion Android
31/34
import [email protected]$iteDataba!e;
import [email protected]$iteOpen"elper;
public cla!! Db"elper extend! SY$iteOpen"elper&
private !tatic 'nal String DA%ABASE+%AB$E ) *Acce!o*;
private !tatic 'nal int DA%ABASE+QE/SIO- ) 4;
,,En e!te m]todo !e va a crear la ba!e de dato!
private !tatic 'nal String DA%ABASE+/EA%E ) */EA%E %AB$EAcce!o 2+id integer primar ke autoincrement*N *u!ernametext not null*N *pa!!Lord text not null
-
8/19/2019 Documentacion Android
32/34
DBADAPTER
// Librerias que se utilizaran
import android.content.ontentQalue!;
import android.content.ontext;
import android.databa!e.ur!or;
import android.databa!e.SY$Exception;
import [email protected]$iteDataba!e;
,,E!te m]todo !e utilia para ejecutar la! con!ulta! !obre laba!e de dato!
public cla!! DBAdapter &
private !tatic 'nal String DA%ABASE+%AB$E ) *Acce!o*;
public !tatic 'nal String [E0+/O+ID ) *+id*;
public !tatic 'nal String [E0+USE/-A#E ) *u!ername*;
public !tatic 'nal String [E0+ASSO/D ) *pa!!Lord*;
SY$iteDataba!e mDb;
ontext mtx;
Db"elper mDb"elper;
public DBAdapter2ontext context<
&
thi!.mtx ) context;
J
public DBAdapter open2< throL! SY$Exception
-
8/19/2019 Documentacion Android
33/34
&
mDb"elper ) neL Db"elper2mtx
-
8/19/2019 Documentacion Android
34/34
ur!or mur!or ) mDb.raLYuer2*SE$E% G 8/O# * NDA%ABASE+%AB$E N * "E/E u!ername) A-D pa!!Lord)*
neL StringT&u!ernamepa!!LordJ