Está en la página 1de 40

Content Provider

¿Qué es?

Content Provider, o proveedor


de contenido, es una interfaz
que permite compartir
información entre aplicaciones
por medio de una dirección
URI.

2
Content Provider Nativos
Android nos proporciona una serie de Content Provider que nos
permite acceder a diferentes datos de nuestro dispositivo, entre
ellos está Browser, CallLog, Settings, MediaStore y Contacts.

● Browser permite leer y modificar los enlaces favoritos, el


historial de navegación y las búsquedas realizadas;

● CallLog almacena Información de las llamadas entrantes,


salientes o perdidas;

● Settings muestra información de las preferencias del


sistema;

● MediaStore permite almacenar información de los


archivos de imagen, audio y video, para los dispositivos
internos y externos; y

● Contacts permite agregar, actualizar o modificar datos de


nuestros contactos.

3
Para usar un Content Provider, es
indispensable que definamos los permisos
correspondientes en el archivo
AndroidManifest.xml

4
Ciclo de vida de Content Provider

Podemos resumir el ciclo de vida de un Content Provider en tres etapas:


En la primera, se inicializa con el método onCreate(), y su principal función es
instanciar la base de datos en el Content Provider.
En la segunda, puede realizar tareas de insert(), como agregar un nuevo registro
en el update() para actualizar el contenido, o bien, en el query() para obtener la
petición de un cliente. Cabe señalar que independientemente de la tarea
realizada, las acciones de apertura y cierre se realizan de manera automática.
Y en la tercera, destruye una aplicación cliente que consume los datos del
Content Provider y no se encuentra en memoria.

5
6
Ejemplo de Relative Layout

Veamos un ejemplo para trabajar


Relative layout:
Ejecutamos Android Studio dando
doble clic en el icono correspondiente, y
en la pantalla de bienvenida que se
abre, damos clic en Iniciar un nuevo
proyecto.

7
En la ventana que se abre, asignamos
el nombre de la aplicación.
Para este ejercicio, anotamos
calificaciones.

8
Usamos el SDK mínimo,
que es 4.4 KitKat.

9
Seleccionamos empty Activity y damos clic en Next o Siguiente.

10
Y en la siguiente ventana, damos clic en Finish o finalizar.

11
Como podemos ver, la pestaña proyecto contiene la mayoría de los
archivos necesarios para crear una aplicación.

12
En la carpeta SRC, encontramos los
archivos para crear la aplicación como
el activity_main.xml y el
mainActivy.java

13
Eliminamos el Textview que, por default, presenta la aplicación al crear un
nuevo proyecto.

14
En Text cambiamos el
Layout por LinearLayout,
así como la línea
android.support.constraint.
ConstraintLayout por
LinearLayout.

En orientation,
seleccionamos vertical

Descargamos una imagen


del instituto donde
laboramos y la colocamos
en el escritorio.

15
Posteriormente, nos
posicionamos en la sub
carpeta drawable de la carpeta
res, damos clic derecho con el
mouse, seleccionamos la
opción Directory_Path, y
después, la carpeta drawable.
Y en esta carpeta colocamos la
imagen que descargamos.

16
Después, vamos a la paleta
de componentes en la
categoría de imágenes y
colocamos un imageView.

17
Para ello, ubicamos nuestra
imagen con la opción de
búsqueda, colocamos el
nombre logo y damos clic
en el botón Ok.

18
En la pestaña TEXT tecleamos las
siguientes propiedades de nuestro
imageView:
android:layout_width="129dp"

android:layout_height="67dp"

android:layout_gravity="center“

Colocamos un TextView y
ajustamos el textSize a 30sp, así
como el color a colorPrimaryDark.

19
Vamos a la paleta de componentes y en
Text, colocamos dos PlainText.

En el primero, colocamos el id nombre,


eliminamos el Name de la propiedad
Text, y en hint, colocamos el siguiente
mensaje: Introduce el nombre del
alumno.

Y en el segundo, colocamos el id grupo,


eliminamos el Name de la propiedad
Text, y en hint, colocamos el siguiente
mensaje: Introduce el grupo del alumno.

20
21
Después, insertamos un primer
TextView.
En TextColor, colocamos
colorPrimaryDark.
Cambiamos la propiedad
layout_width por
“match_parent”.layout_height
"wrap_content“ y layout_weight 0.02.
En el Text, anotamos Calificación del
primer parcial.
Insertamos un Number (decimal).
Y cambiamos la propiedad id a p1.

22
Insertamos un segundo TextView.
En textColor, colocamos
colorPrimaryDark.
Cambiamos las propiedades de
layout_width por
"match_parent"layout_height
"wrap_content“ y layout_weight 0.02.
En Text, anotamos Calificación del
segundo parcial.
Insertamos un Number (decimal).
Y cambiamos la propiedad id a p2

23
Insertamos un tercer TextView,

En textColor colocamos
colorPrimaryDark.

Cambiamos las propiedades de


layout_width por
"match_parent"layout_height
"wrap_content“ y layout_weight 0.02.

En Text, anotamos Calificación del


tercer parcial

24
Insertamos un Number (decimal).

Y cambiamos la propiedad id a p1.

Luego, insertamos dos botones: en el


primero, cambiamos la propiedad text
por Agregar, y en el segundo,
cambiamos la propiedad text por
Consultar.

25
A continuación, ingresamos a
la carpeta Java y en la
carpeta
com.example.laptop.calificaciones,
damos clic derecho al mouse
seleccionamos nuevo, Java
Class le damos el nombre de
Conexión a la clase y
oprimimos OK.

26
La clase conexión debe heredar los
métodos abstractos Oncreate()
onUpgrade(), de la clase
SQLiteOpenHelper. Cabe resaltar que al
teclear extends SQLiteOpenHelper, se
marca un error, pero es normal.

27
Nos posicionamos en el extends
oprimimos las teclas alt+Enter
solicitamos crear los métodos
Oncreate() y onUpgrade() damos
clic en OK. Volvemos a la línea
extends SQLiteOpenHelper y
damos clic en las teclas alt+enter
para crear el constructor de la
clase conexión.

28
Posteriormente, utilizamos la variable
db para llamar al método execSQL, el
cual permite crear la tabla que, para
este ejercicio, se llamará
Calificaciones, y que contendrá el
campo nombre de tipo text que será
nuestra llave primaria.

En este sentido, tenemos el campo


grupo de tipo text, y campos de tipo
real denominados puno, pdos y ptres.

29
Después, vamos a la clase
MainActivity.

Definimos las variables: EditText,


nombre, grupo, p1, p2 y p3, que
nos permiten instanciar los
elementos en el archivo XML.

30
Creamos un método público que no regresa
nada, llamado agregar, y que tiene un objeto de
tipo View.

Creamos un objeto de la clase conexión llamado


admin.

Crearemos un objeto de la clase


SQLiteDatabase para mandar traer al método
getWritableDatabase(), para acceder a la base
de datos.

Declaramos las variables de tipo cadena nom,


grupos, par1, par2, par3, en las cuales se guarda
el contenido de los elementos del XML tecleados
por el usuario en la aplicación.

31
Declaramos un objeto de tipo
ContentValues, para almacenar la
información en la pareja denominada
clave-valor, a través del objeto que para
este ejercicio se denominó registro y
que manda traer el método put.

Una vez que la sentencia base.insert()


realiza la inserción del registro en la
base de datos, cerramos dicha base
asignamos un espacio vacío a las
variables y enviamos un Toast de
registro con éxito.

32
Más tarde, creamos un método público que no regresa
nada, denominado consulta.

Declaramos una variable de tipo Conexión denominada


admin, así como una variable denominada base de tipo
SQLiteDatabase para acceder a la base de datos.

Declaramos una variable de tipo cadena para recibir el


contenido de EditText nombre.

Definimos una variable de tipo cursor denominada fila y


le asignamos el valor que devuelve el método
rawQuery.

Dado que esta variable puede tener una fila o ninguna,


llamamos al método moveToFirst(), para mostrar los
datos almacenados en la base que usamos. En caso
contrario, muestra un mensaje informando que el
estudiante no existe.
33
34
Al ejecutar nuestra aplicación, ésta nos
solicita el nombre del estudiante y su
grupo.

Cabe resaltar que, en materia de


calificaciones, debemos capturar y
agregar las correspondientes al primer,
segundo y tercer parcial.

Si el usuario desea consultar el


registro, sólo debe ingresar su nombre
y dar clic en el botón Consultar.

35
Blanco, P., Camarero, J., Fumero, A., Werterski, A. & Rodríguez, P. (2009).
Metodología de desarrollo ágil para sistemas móviles. Introducción al desarrollo
con Android y el iPhone. Dr. en Ing. Sist. Telemáticos, 1-30.

Benbourahla, N. (2015). Android 5: principios del desarrollo de aplicaciones Java.


Ediciones Eni.

Gironés, J. T. (2012). El gran libro de Android. Marcombo.

36
Producción

Universidad Autónoma del Estado de Morelos

Coordinación de Formación Multimodal (e-UAEM)

Coordinación General
Dra. Ma. Luisa Zorrilla Abascal
Dra. Maribel Castillo Díaz

37
Coordinación de diseño formacional
Josué Antonio Ibarra Rodríguez

Coordinación de gestión
Ana Daniela Naranjo Acosta

Coordinación de producción de recursos


José Sergio Palacios Lara
Erendira Ceballos Román

38
Experto en contenido
Beatriz Amado Sánchez

Diseñador formacional
Uriel Lira Román

Corrección de estilo
Norma Alicia Pascual García

39
Producción Multimedia
Luis Gustavo Medina Figueroa
Jesús Giovanni Ortíz Solano
Andrea Gijón Arango
Bruno Hernández Levi

40