Manual Android

download Manual Android

of 26

Transcript of Manual Android

Universidad Autnoma de Guerrero Unidad Acadmica de Ingeniera Ingeniera en Computacin

DESARROLLO DE UNA APLICACIN QUE PERMITA LA MANIPULACIN DE UNA BD EN UN DISPOSITIVO CON SO ANDROID EN ESQUEMA DE GESTIN CONEXIN / DESCONEXIN.

Materia: Ensamblador Profr.: M. C. Jos Mario Martnez Castro Alumno: Vctor Francisco Garca Matrcula: 07045397

Chilpancingo, Gro., Enero de 2012

INDICEINSTALACIN DEL AMBIENTE DE DESARROLLO2

CREACION DE LA APLICACIN CLIENTE...8

IMPORTANDO LA LIBRERA KSOAP..22

INSTALACIN DEL AMBIENTE DE DESARROLLO2

Puedes consultar ms informacin en esta pgina: http://developer.android.com/index.html Requisitos del sistema En las secciones siguientes se describen los requisitos del sistema y el software para desarrollar aplicaciones para Android con el SDK de Android. Inicio Rpido Los pasos siguientes proporcionan una visin general de cmo empezar a trabajar con el SDK de Android. Para obtener instrucciones detalladas, comience con la instalacin del SDK de gua (http://developer.android.com/sdk/installing.html ). 1. Prepare su equipo de desarrollo Lea el Requisitos del sistema (http://developer.android.com/sdk/requirements.html ) de documentos y asegurarse de que el equipo de desarrollo cumple con los requisitos de hardware y software para el SDK de Android. 2.- Descargue e instale Java JRE http://developers.sun.com/downloads/

3. Descargar e instalar el paquete SDK de Android Seleccione un paquete inicial de la tabla en la parte superior de esta pgina y descargar a

su equipo de desarrollo. Para instalar el SDK, simplemente descomprimir el paquete de inicio a un lugar. (C:\android-sdk-windows\tools). http://developer.android.com/sdk/index.html3

4.- Aadir la ubicacin del SDK del paso 2 a la variable PATH hasta el directorio de tools. En Windows en las propiedades del sistema modificar la variable PATH. Agregar el directorio del SDK de android hasta la carpeta tools

C:\android-sdk-

windows\tools

4

5.- Descargue e instale ECLIPSE Para desarrollar con Eclipse http://www.eclipse.org/downloads/

5

6. Instale el ADT plugin para Eclipse Si est desarrollando en Eclipse, crear un sitio de actualizacin a distancia en la direccin

https: / / dl-ssl.google.com/android/eclipse /. Instalar el Android Development Tools (ADT) Plugin, reinicie Eclipse, y establecer el "Android" preferencias en Eclipse para que apunte a la ubicacin de instalacin SDK. Para obtener instrucciones detalladas, consulte ADT plugin para Eclipse. Inicio de Eclipse, a continuacin, seleccione Ayuda > Instalar nuevo software. En el cuadro de dilogo del software disponible, haga clic en Agregar .... En el Sitio de dilogo Agregar que aparece, escriba un nombre para el sitio remoto (por

ejemplo, "Android Plugin") en el campo "Nombre". En el campo "Localizacin", introduzca la siguiente direccin: https:/ / dl-ssl.google.com/android/eclipse / Nota: Si tiene problemas para adquirir el plug-in, puede probar a usar "http" en la URL,

en lugar de "https" (https se prefiere por razones de seguridad). Haga clic en Aceptar. De vuelta en el punto de vista de software disponible, ahora debera ver "Herramientas de

desarrollo", agreg a la lista. Seleccione la casilla junto a herramientas de desarrollo, que6

seleccionar automticamente las herramientas anidadas DDMS Android y Android Development Tools. Haga clic en Siguiente. En el resultado de dilogo Detalles de Instalacin, el DDMS Android y Android

Herramientas caractersticas de desarrollo estn en la lista. Haga clic en Siguiente para leer y aceptar el acuerdo de licencia e instalar las dependencias, a continuacin, haga clic en Finalizar. Reinicie Eclipse.

7. Aadir Android plataformas y otros componentes para su SDK Utilice el SDK de Android y AVD Manager, incluido en el arranque del paquete SDK,

para aadir una o ms plataformas Android (por ejemplo, Android 1.6 y Android 2.2) y otros componentes para su SDK. Si no est seguro de qu agregar, ver Qu componentes necesito? Para lanzar el SDK de Android y AVD Manager en Windows, ejecute Setup.exe SDK, en

la raz del directorio SDK. En Mac OS X o Linux, ejecute el androide herramienta en la / herramientas / carpeta. Para obtener instrucciones detalladas, consulte Adicin de Componentes SDK.

7

8

CREACION DE LA APLICACIN CLIENTE Abrimos Eclipse .

Damos clic en File > New > Android Project

Nos mostrara la siguiente ventana, donde ponemos el nombre del proyecto y damos clic en Next.9

Despus elegimos la plataforma de destino.

Luego nos aparecer otra ventana parecida a esta, en la cual tenemos que poner el nombre del paquete y damos clic en Finish.

10

Ahora abrimos la activity creada por Eclipse.

En la activity agregamos el siguiente cdigo que es el que creara y se conectara al Web Service.package sem9.comp; import java.io.IOException; import java.util.ArrayList; import java.util.List;

11

import import import import import import import import import import import import import import import import import import import import import import

org.ksoap2.SoapEnvelope; org.ksoap2.serialization.PropertyInfo; org.ksoap2.serialization.SoapObject; org.ksoap2.serialization.SoapPrimitive; org.ksoap2.serialization.SoapSerializationEnvelope; org.ksoap2.transport.HttpTransportSE; org.xmlpull.v1.XmlPullParserException; android.app.Activity; android.content.ContentValues; android.database.Cursor; android.database.sqlite.SQLiteDatabase; android.os.Bundle; android.util.Log; android.view.Menu; android.view.MenuInflater; android.view.MenuItem; android.view.View; android.widget.Button; android.widget.EditText; android.widget.SimpleCursorAdapter; android.widget.Spinner; android.widget.Toast;

public class AppclienteandroidActivity extends Activity { /** Called when the activity is first created. */ //Variables Global int cont =0; int A=0,M=0,cal=0; EditText editCalif,editSelection; private Button botonAgregar; //variables for the connection a the BD private SQLiteDatabase baseDatos; private static final String TAG = "bdcalif"; private static final String nombreBD = "temp"; private static final String tablaAlumno = "alumno"; private static final String tablaCalif = "calificaciones"; private static final String tablaMat = "materia"; //Constants for the invocation the web service private static final String SOAP_ACTION = "http://localhost/WebService/GetData"; private static final String NAMESPACE = "http://localhost/WebService/"; private static final String URL = "http://192.168.1.212:8660/"; private static final String METHOD_NAME = "GetData"; private static final String METHOD_NAME1 = "insert_cal"; private static final String METHOD_NAME2 = "update_cal"; private static final String SOAP_ACTION1 ="http://localhost/WebService/insert_cal"; private static final String ACTION ="http://localhost/WebService/update_cal"; private String resultadoFINAL; private String resultadoAl; private String resultadoMa; 12

//Declaration the variables for consume el web service private SoapObject request=null; private SoapSerializationEnvelope envelope=null; private SoapPrimitive resultsRequestSOAP=null; //String para la creacion de las tablas de la BD local private static final String crearTablaAlumno = "create table if not exists " + " alumno (idal varchar not null, " + " nombre varchar not null)"; private static final String crearTablaMateria = "create table if not exists " + " materia (idmat varchar not null, " + " nombre varchar not null)"; private static final String crearTablacalificaciones = "create table if not exists " + " calificaciones (cval varchar not null , cvmat varchar not null , " + " cal real not null)"; /** Called when the activity is first created. */ @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.opciones , menu); return true; } //Menu @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.MnuOpc1: return true; case R.id.SubMnuOpc4://Cerrar la aplicacin Android try{ baseDatos.close(); } catch (Exception e){ Log.i(TAG, "Cerrando..." + e); } finish(); return true; /*case R.id.SubMnuOpc1://guardar datos en la BD local //guardar(); return true;*/ case R.id.SubMnuOpc2://guardar datos en la BD local try{ datos_calif(); }catch(Exception e){ Log.i("Error al insertar", e.toString());} return true; case R.id.SubMnuOpc3://borrar la base de datos local try{borrar_BD(); Toast.makeText(getApplicationContext(), "Base de Datos local Borrada Correctamente ", Toast.LENGTH_LONG).show();} catch(Exception e){Log.i("Error al borrar", e.toString());} return true; 13

case R.id.SubMnuOpc11: //descargar los datos del Servicio web try{ borrar_BD(); baja_alumno(); baja_materia (); baja_calif (); Toast.makeText(getApplicationContext(), "Datos Descargados... ", Toast.LENGTH_LONG).show();} catch(Exception e){Log.i("Error al Descargar", e.toString());} return true; case R.id.SubMnuOpc22://subir datos try{ subir_calif (); } catch(Exception e){Log.i("Error al subir datos", e.toString());} try { update_calif(); }catch(Exception ex){ Log.i("Error al actualizar", ex.toString());} return true; default: return super.onOptionsItemSelected(item); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); editCalif = (EditText) findViewById(R.id.txtCalif ); botonAgregar = (Button) findViewById(R.id.btagregar); //Codigo del boton Agregar calificacion botonAgregar.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { guardar(); } }); abrirBasedatos(); datos_calif(); } //Funcion guardar calificaciones private void guardar(){ abrirBasedatos();//Funcion para abrir y crear la BD local //Insertar una fila o registro en la tabla "calificaciones" boolean resultado = Agregar_calif(String.valueOf((A+1)),String.valueOf((M+1)),editCalif.get Text().toString()); 14

if(resultado) Toast.makeText(getApplicationContext(),"Calificacion agregada correctamente", Toast.LENGTH_LONG).show(); else Toast.makeText(getApplicationContext(),"No se ha podido guardar la calificacion" , Toast.LENGTH_LONG).show(); } //Obtener los Datos de la Bd local y colocarlos en los Spinner private void datos_calif(){ Spinner datos = (Spinner) findViewById(R.id.spinner); Spinner datosal = (Spinner) findViewById(R.id.spinnerAl); Spinner datosmat = (Spinner) findViewById(R.id.spinnerMat); abrirBasedatos() ; //Creamos el cursor Cursor c = baseDatos.rawQuery("Select cval AS _id, cal from "+tablaCalif,null );//calificaciones Cursor c1 = baseDatos.rawQuery("Select idal AS _id, nombre from "+tablaAlumno,null );//Alumnos Cursor c2 = baseDatos.rawQuery("Select idmat AS _id, nombre from "+tablaMat,null );//Alumnos c.moveToFirst(); c1.moveToFirst(); c2.moveToFirst(); //Creamos el adaptador SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item,c1,new String[] {"nombre"}, new int[] {android.R.id.text1}); SimpleCursorAdapter adapter2 = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item,c,new String[] {"cal"}, new int[] {android.R.id.text1}); SimpleCursorAdapter adapter3 = new SimpleCursorAdapter(this,android.R.layout.simple_spinner_item,c2,new String[] {"nombre"}, new int[] {android.R.id.text1}); //Aadimos el layout para el men adapter3.setDropDownViewResource(android.R.layout.simple_spinner_dropdo wn_item); adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdo wn_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdow n_item); //Le indicamos al spinner el adaptador que usara datos.setAdapter(adapter2); datosal.setAdapter(adapter); datosmat.setAdapter(adapter3); /*alumnos datosal.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){ 15

public void onItemSelected(AdapterView adapter, View v, int i, long lng) { //do something here A=i; } public void onNothingSelected(AdapterView arg0) { //do something else } }); //materia datosmat.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){ public void onItemSelected(AdapterView adapter, View v, int i, long lng) { //do something here M=i; } public void onNothingSelected(AdapterView arg0) { //do something else } });*/ } //Funcion para Abrir y crear la BD en dado caso que no exista private void abrirBasedatos() { try { baseDatos = openOrCreateDatabase(nombreBD, MODE_WORLD_WRITEABLE, null); baseDatos.execSQL(crearTablaAlumno); baseDatos.execSQL(crearTablaMateria); baseDatos.execSQL(crearTablacalificaciones); } catch (Exception e) { Log.i(TAG, "Error al abrir o crear la base de datos" + e); } } //****Borrar Toda la Base de datos Local************************************ private void borrar_BD(){ abrirBasedatos() ; baseDatos.delete(tablaCalif, null, null); baseDatos.delete(tablaAlumno, null, null); baseDatos.delete(tablaMat, null, null); } //Mtodo que realiza la califcaciones insercin de los datos en la tabla 16

private boolean Agregar_calif(String idal, String idmat, String cal) { ContentValues values = new ContentValues(); values.put("cval",idal ); values.put("cvmat", idmat); values.put("cal", cal); Toast.makeText(getApplicationContext(), "Por Favor Espere....Agregando CAlificaciones...",Toast.LENGTH_LONG).show(); return (baseDatos.insert(tablaCalif, null, values) > 0); //Mtodo que realiza la insercin de los datos alumnos en la BD local private boolean Agregar_al(String idal, String nom) { ContentValues values = new ContentValues(); values.put("idal",idal ); values.put("nombre", nom); Toast.makeText(getApplicationContext(), "Por Favor Espere....",Toast.LENGTH_LONG).show(); return (baseDatos.insert(tablaAlumno, null, values) > 0); } //**Mtodo que realiza la insercin de los datos materia en la BD local private boolean Agregar_mat(String idmat, String nom) ContentValues values = new ContentValues(); values.put("idmat",idmat ); values.put("nombre", nom); Toast.makeText(getApplicationContext(), "Por Favor Espere....Agregando Datos",Toast.LENGTH_LONG).show(); return (baseDatos.insert(tablaMat, null, values) > 0); } //Funcion para bajar los alumnos del WS public void baja_alumno () { //Creaccion de la Solicitud request = new SoapObject(NAMESPACE, METHOD_NAME); //insercion de parametros PropertyInfo tablaprop = new PropertyInfo(); tablaprop.setName("tabla"); tablaprop.setValue("alumno"); tablaprop.setType(String.class); request.addProperty(tablaprop); //Creaccion del Envelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.dotNet = true; //se asigna true para el caso de que el WS sea de dotNet envelope.setOutputSoapObject(request); //Creaccion del transporte //Objeto que representa el modelo de transporte 17 { }

respuesta

//Recibe la URL del ws HttpTransportSE transporte = new HttpTransportSE(URL); try { //Hace la llamada al ws transporte.call(SOAP_ACTION, envelope); //Se crea un objeto SoapPrimitive y se obtiene la

//de la peticion resultsRequestSOAP = (SoapPrimitive)envelope.getResponse(); resultadoAl = resultsRequestSOAP.toString(); //editNombre.setText("Resultado:" + resultadoAl); } catch (IOException e) {e.printStackTrace();} catch (XmlPullParserException e) {e.printStackTrace();} { try List tuplas(getregister("alumno")); int i = 0; while (i