Bien, pues hagamos nuestro primer ejercicio donde lo único que estaremos haciendo será lanzar una notificación. Vamos a hacer una interfaz que solamente tenga aquà un botón, y ese botón al darle clic nos lance una notificación. Vamos a decirle que esta notificación se va a comportar de forma local. Entonces voy a primeramente a borrar este TextView, y voy a reemplazarlo por un botón que es precisamente nuestro botón que va a estar reaccionando cuando nosotros le demos clic. Voy a colocarle su id, le voy a poner LanzarNotificacion. Okey, LanzarNotificacion y además también le vamos a poner un string, m[as bien un texto en ese botón, y lo vamos a tomar de nuestro archivo strings y se llamará lanzar_notificacion. Listo, y vamos a crear el recurso. Simplemente estoy dando alt enter y voy a decirle create string value resource. Le voy a poner el valor del string, será LanzarNotificacion, y enter. you. Ahora vamos a crear, vamos a ver cómo estaba mostrándose esto. Ahà está. Vamos nada más a centrar este elemento un poco, android:centerHorizontal en true. Listo. Bien, ahora vamos a nuestro archivo MainActivity para crear el método que estará asociado a este botón public void lanzarNotificacion será un View y listo. you está ahà nuestro método y entonces bueno, lo primero que voy a estar trabajando aquà es que cuando al momento de que alguien le de clic a nuestra notificación, pues esa notificación tiene que dirigirse hacia algún lado. Entonces la única forma que tenemos para dirigirnos a un lugar es a través de un objeto intent, y entonces voy a configurar a dónde se va a dirigir mi aplicación cuando alguien le de clic. Entonces será simple porque solamente tengo una pantalla hasta al momento, la pantalla de MainActivity. Ahora además de tener mi intent, debo configurar un objeto que se conoce como PendingIntent, y este objeto PendingIntent es precisamente el tipo de dato que estará recibiendo nuestra notificación para precisamente dirigirse a donde nuestro intent se ha configurado. Entonces le voy a poner, me pide el contexto, le voy a poner this, después me pide un código de solicitud, puedo poner el que yo quiera, le voy a poner 0. Después me solicita el intent, el intent a donde va i, y por último una bandera. Entonces voy a poner aquà una bandera PendingIntent, voy a poner Flag_One_Shot. Listo. you está. Ahora lo que estaré trabajando es mi notificación. Utilizaré la clase NotificationCompat y lo primero que estaré haciendo será configurar la notificación. Aquà en este objeto, a través de este objeto estaré trabajando la notificación, solamente configuraré la notificación. Y como vimos en el video, la clase notificationManager será el encargado de estar, pues estar llevándose, de estar mandando esa notificación que definimos. Bien, aquà me falta el builder, ahà está, muy bien. you está mi notificación. Ahora vamos a empezar a darle más atributos a esa notificación. Voy a comenzar por asignarle un Ãcono, okey, la instrucción que estaré buscando se llama setSmallIcon y bueno ahorita vamos a traer un Ãcono que previamente yo you tengo listo. Entonces voy a quitar eso por un momento y voy a traer el Ãcono a mi proyecto a través del plugin drawable, a través del plugin que me permite estar trabajando pues, que mi imagen sea generada en diferentes densidades. Entonces voy a importar la lista, you está, esa es la imagen que estoy trabajando, es asÃ, no se alcanza a ver muy bien ahorita pero ahorita la vamos a ver en marcha. Entonces primero le voy a colocar setSmallIcon y colocaremos R.drawable .notification, okey. Después vamos a poner setContentTitle, el tÃtulo de nuestra notificación, le podemos poner Notificacion. Okey. Y posteriormente colocaremos setContentText, vendrá el contenido del texto que le vamos a poner un Hola Mundo. Ahora colocaremos setSound, queremos que nuestra notificación tenga un sonido y entonces para esto tiene que recibir un recurso de tipo Uri, okey. Entonces ese recurso de tipo Uri voy a declarar un objetito por aquà antes de. Voy a poner sonido, y voy a usar una clase que se llama RingManager, RingtoneManager. Le voy a decir que este método precisamente getDefaultUri y aquà dentro le voy a decir que a partir del RingtoneManager obtenga el sonido que tiene que ver con el tipo de sonido que tienes configurado en tu teléfono para una notificación, o el sonido que tienes configurado en tu teléfono para una alarma. Y asà sucesivamente dependiendo del sonido que elijas, voy a seleccionar el de notificación, y you quedó, listo mi sonido, esto es el código que tengo. Simplemente aquà donde dejé pendiente el método me voy a pasar el dato y you que tengo mi sonido, ahora debo también, recuerdas mi PendingIntent, le voy a decir setContent, setContentIntent, ahà está. Le vamos a pasar el PendingIntent que configuramos arriba, y listo, vamos a ver aquà qué nos está diciendo. Okey, parece que estas estamos trayendo de la versión 7 y necesitamos de la versión 4. Okey, eso es muy importante que nuestra clase NotificationCompat provenga de la versión 4 de Android, aquà podemos ver tenemos la 7 y tenemos la 4, vamos a trabajar con la 4, y you quedó listo. you quedó configurada nuestra notificación. Qué Ãcono va a tener, qué tÃtulo, qué texto, sonido, y hacia dónde se va a dirigir. Además le voy a añadir un parámetro más, le voy a poner que sea autocancelable, okey, que la notificación se pueda cancelar. Y entonces ahora sà utilizaré mi clase notificationManager y esta clase me va a estar ayudando precisamente a mandar el objeto notificación que you creé más arriba, le voy a decir aquà getSystemService, utilizaré mi clase Contexto y le voy a decir que será un servicio de tipo notificación, asà lo dejamos. Y listo you quedó mi objetito, le voy a decir aquà que voy a utilizar notificationManager.notify y como primer parámetro me pide un id, puedo poner el id que yo quiera. Posteriormente me pide la notificación que previamente you configuré, está ahà arriba notification y le daré .build, es decir construye la notificación que yo hice aquÃ, constrúyela, asÃgnale un identificador y con mi objeto Manager es que estaré enviando la notificación. Bien, pues you para probarla nada más vamos a asociar este método a su respectivo botón. Para eso colocaremos el atributo onClick y lanzarNotificacion. Perfecto, tengo listo un emulador de Android y simplemente vamos a darle play y parece que you ha terminado, you está en nuestra aplicación, y bueno, como le hemos asignado un sonido, vamos a subir el volumen para que esto pueda escucharse muy bien. Y vamos a darle aquà clic. [SONIDO] Listo, ese es el tono que tiene definido mi notificación. Y aquà se ve, aquà está claramente visible, dice notificación Hola Mundo. Ahora vamos a probar esto mismo pero en nuestro dispositivo fÃsico, en nuestro dispositivo móvil. Para eso estoy utilizando esta herramienta que me permite pues estar visualizando mi teléfono móvil. Ojo, esto no es emulador, este es simplemente un visor de mi teléfono móvil, es como un visor de acceso directo. Voy a correr de nuevo el proyecto, y ahora sà le vamos a decir que lo corra en el dispositivo fÃsico, en el dispositivo que se ve aquÃ. [AUDIO EN BLANCO] Listo, you está ahà mi aplicación, vamos a darle lanzar notificación. [SONIDO] Y se ha escuchado un tono. Vamos a subir un poco más el volumen, aquà está mi notificación. Perfecto, subiremos un poco más el volumen, y ahora [SONIDO], ahà está de nuevo, está respetando el tono que yo tengo definido para mi notificación, y al darle clic a la notificación nos lleva a esta ventana. Nos damos cuenta porque al hacerle con el botón de back termina la ventana que estaba abierta del activity y entonces nos regresa al activity anterior. Okey, perfecto. De esta forma es como puedo estar configurando notificaciones locales en mi teléfono.