SlideShare una empresa de Scribd logo
1 de 82
PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
COMENZANDO A
PROGRAMAR
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGOS Y
NOTIFICACIONES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
LA CLASE DIALOGFRAMENT
LA CLASE ALERTDIALOG
DIÁLOGOS
SNACKBAR
NOTIFICACIONES EN BARRA DE ESTADO
TOAST
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TOAST
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TOAST
Mensaje que se muestra en
pantalla durante unos segundos al
usuario para luego volver a
desaparecer automáticamente sin
requerir ningún tipo de actuación.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SETGRAVITY
LENGTH_SHORT
TOAST
LENGTH_LONG
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
import android.widget.Toast;
TOAST
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TOAST
Toast toast =Toast.makeText(getApplicationContext(),
“MENSAJE", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER|Gravity.LEFT,0,0);
toast.show();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
PERSONALIZAR EL TOAST
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TOAST
Toast toast = new Toast(getApplicationContext());
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_layout,
(ViewGroup) findViewById(R.id.layout));
TextView texto= (TextView)layout.findViewById(R.id.texto);
texto.setText(“TOAST PERSONALIZADO");
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(layout);
toast.show();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGOS
Los diálogos de Android los podremos
utilizar con distintos fines: Mostrar un
mensaje. Pedir una confirmación rápida.
Solicitar al usuario una elección entre
varias alternativas.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
import app.Dialogo
Import android.app.ProgressDialog;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
DIÁLOGOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO SIMPLE
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO SIMPLE
showDialog(0);
@Override
protected Dialog onCreateDialog(int id){
Dialog dialogo=null;
if(id==0){
Builder builder=new AlertDialog.Builder(this);
builder=builder.setIcon(R.drawable.ic_launcher);
builder=builder.setTitle("EJEMPLO DE DIÁLOGO");
dialogo=builder.create()}
return dialogo;
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON BOTONES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
showDialog(0);
@Override
protected Dialog onCreateDialog(int id) {
DListener listener= new DListener();
Dialog dialogo=null;
if(id==0){
Builder builder=new AlertDialog.Builder(this);
builder=builder.setIcon(R.drawable.ic_launcher);
builder=builder.setTitle(“DIÁLOGO CON BOTONES");
builder=builder.setMessage("Este es el mensaje");
builder=builder.setPositiveButton("BOTÓN PRIMERO", listener);
builder=builder.setNegativeButton("BOTÓN SEGUNDO", listener);
builder=builder.setNeutralButton("BOTÓN TERCERO", listener);
dialogo=builder.create()
}
return dialogo;
}
DIÁLOGO CON BOTONES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON BOTONES
class DListener implements DialogInterface.OnClickListener{
@Override
public void onClick(DialogInterface dialog, int which) {
if(which == DialogInterface.BUTTON_POSITIVE)
tv.setText("BOTÓN PRIMERO PULSADO");
if(which == DialogInterface.BUTTON_NEGATIVE)
tv.setText("BOTÓN SEGUNDO PULSADO");
if(which == DialogInterface.BUTTON_NEUTRAL)
tv.setText("BOTÓN TERCERO PULSADO");
}
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON ITEMS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON ITEMS
CharSequence[] items={"CASO 0","CASO 1","CASO 2","CASO 3","CASO 4","CASO 5"};
showDialog(0);
@Override
protected Dialog onCreateDialog(int id) {
DListener listener= new DListener();
Dialog dialogo=null;
if(id==0){
Builder builder=new AlertDialog.Builder(this);
builder=builder.setIcon(R.drawable.ic_launcher);
builder=builder.setTitle(“DIÁLOGO CON ITEMS");
builder=builder.setItems(items, listener);
dialogo=builder.create() }
return dialogo;
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON BOTONES
class DListener implements DialogInterface.OnClickListener{
@Override
public void onClick(DialogInterface dialog, int which) {
tv.setText("PULSADO EL ITEM "+ which);
}
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON SELECCIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON SELECCIÓN
CharSequence[] items={"CASO 0","CASO 1","CASO 2","CASO 3","CASO 4","CASO 5"};
showDialog(0);
@Override
protected Dialog onCreateDialog(int id) {
DListener listener= new DListener();
Dialog dialogo=null;
if(id==0){
Builder builder=new AlertDialog.Builder(this);
builder=builder.setIcon(R.drawable.ic_launcher);
builder=builder.setTitle(“seleccione una opción");
builder=builder.setSingleChoiceItems(items,0, listener)
builder=builder.setPositiveButton("OK",listener)
builder=builder.setNegativeButton("Cancelar",listener)
dialogo=builder.create() }
return dialogo;
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON SELECCIÓN
class DListener implements DialogInterface.OnClickListener{
@Override
public void onClick(DialogInterface dialog, int which) {
if(which >= 0)
tv.setText("HA PULSADO EL ITEM "+ which);
if(which == DialogInterface.BUTTON_NEGATIVE)
tv.setText("HA CANCELADO LA OPCIÓN");
}
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON PROGRESO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON PROGRESO
showDialog(0);
new MyAsyncTask().execute();
@Override
protected Dialog onCreateDialog(int id) {
progressDialog = new ProgressDialog(this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.setIcon(R.drawable.ic_launcher);
progressDialog.setTitle("Progreso...");
return progressDialog;
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON PROGRESO
class MyAsyncTask extends AsyncTask<Void,Void,Void>{
@Override
protected Void doInBackground(Void...arg0){
for(int i=0;i<100;i++){
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
progreso=i+1;
publishProgress();
}
return null;
}
ACTUALIZACIÓN
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO CON PROGRESO
protected void onProgressUpdate(Void...progress){
progressDialog.setProgress(progreso);
tv.setText("PROGRESO TERMINADO");
if(progreso==100)progressDialog.dismiss();
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO PERSONALIZADO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO PRESONALIADO
showDialog(0);
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialogo new Dialog(this);;
Window w = dialogo.getWindow();
int flag = WindowManager.LayoutParams.FLAG_BLUR_BEHIND;
w.setFlags(flag,flag);
dialogo.setTitle("DIÁLOGO BÁSICO");
dialogo.setContentView(R.layout.dialogo);
Button botonDialogo=(Button) dialogo.findViewById(R.id.buttonDialogo);
botonDialogo.setOnClickListener(new AceptarListener());
return dialogo;
}
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO TIME/DATE
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.widget.DatePicker;
import android.widget.TimePicker;
DIÁLOGO TIME/DATE
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DATE
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO TIME/DATE
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dpd = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
}
}, mYear, mMonth, mDay);
dpd.show();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
TIME
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
DIÁLOGO TIME/DATE
final Calendar c = Calendar.getInstance();
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
TimePickerDialog tpd = new TimePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int
hourOfDay, int minute) {
}
}, mHour, mMinute, false);
tpd.show();
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
BARRA DE ESTADO
NOTIFICACIONES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES
Una notificación es un mensaje que se
puede visualizar en la parte exterior del
interfaz de la aplicación en uso
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES
Son las que se muestran en nuestro
dispositivo cuando recibimos un mensaje
SMS, tenemos actualizaciones
disponibles, reproductor de música
abierto en segundo plano
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES
MENSAJE NUEVO
Próxima reunión semanal
09:00
TÍTULO/NOMBRE
CONTENIDO
ICONO
MARCA TEMPORAL
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
PUEDEN ESTILIZARSE MEDIANTE SETSTYLE()
EL IDENTIFICADOR DA ACCESO AL INTERFAZ
NOTIFICACIONES
PUEDEN SER CLASIFICADAS EN GRUPOS
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
CONSTRUIMOS
LANZAMOS
NOTIFICACIÓN
ESTABLECEMOS
ACTIVIDAD
DESTINO
NOTIFICACIONES
CREAMOS
NOTIFICACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
CREAR NOTIFICACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: CREAR NOTIFICACIÓN
private NotificationManager notificador;
..//..
notificador = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
LIBRERÍA android-support-v4.jar;
import android.app.NotificationManager;
import android.support.v4.app.NotificationCompat;
NOTIFICACIONES: CREAR NOTIFICACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: CREAR NOTIFICACIÓN
NotificationCompat.Builder Builder =
new NotificationCompat.Builder(Actividad90.this)
.setSmallIcon(android.R.drawable.stat_sys_warning)
.setLargeIcon((((BitmapDrawable)getResources()
.getDrawable(R.drawable.ic_launcher)).getBitmap()))
.setContentTitle("MENSAJE DE ALERTA")
.setContentText("Ejemplo de notificación.")
.setContentInfo("4")
.setTicker("AVISO DE NOTIFICACIÓN");
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
LIBRERÍA android-support-v7.jar;
import android.app.NotificationManager;
import android.support.v7.app.NotificationCompat;
NOTIFICACIONES: CREAR NOTIFICACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: CREAR NOTIFICACIÓN
NotificationCompat.Builder Builder = new (NotificationCompat.Builder)
NotificationCompat.Builder(Notifi01.this)
.setSmallIcon(android.R.drawable.stat_sys_warning)
.setLargeIcon((((BitmapDrawable)getResources()
.getDrawable(R.drawable.ic_launcher)).getBitmap()))
.setContentTitle("MENSAJE DE ALERTA")
.setContentText("Ejemplo de notificación.")
.setContentInfo("4")
.setTicker("AVISO DE NOTIFICACIÓN");
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: CREAR NOTIFICACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
SETVIBRATE()
SETCONTENTINFO()
SETTICKER()
SETCONTENTTEXT()
SETCONTENTTITLE()
SETLARGEICON()
NOTIFICACIONES: CREAR NOTIFICACIÓN
SETSMALLICON()
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
ESTABLECER ACTIVIDAD DESTINO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
Se asigna acción al visualizar la
notificación por el usuario mediante
una instancia de la clase PendingIntent.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
Intent intent = new Intent(this, Actividad.class);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
PILA DE TRABAJO
ACTIVIDAD ESPECIAL
ACTIVIDAD REGULAR
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD REGULAR
ASIGNAMOS EL PENDINGINTENT
OBTENEMOS EL PENDINGINTENT
GENERAMOS REFERENCIA A LA PILA
SE AÑADE LA ACTIVIDAD PADRE A LA PILA
INICIALIZAMOS LA PILA
SE CREA UNA PILA DE RETROCESO
SE DECLARA UNA ACTIVIDAD PADRE
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD REGULAR
SE DECLARA UNA ACTIVIDAD PADRE
<activity android:name=".Actividad"
android:parentActivityName=".Notifi02">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="es.vcarmen.notifi02.Notifi02" />
</activity>
SE DECLARA UNA ACTIVIDAD PADRE
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD REGULAR
INICIALIZAMOS LA PILA DE RETROCESO
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD REGULAR
SE AÑADE LA ACTIVIDAD PADRE A LA PILA
stackBuilder.addParentStack(Actividad.class);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD REGULAR
GENERAMOS REFERENCIA A LA PILA
stackBuilder.addNextIntent(intent);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD REGULAR
OBTENEMOS EL PENDINGINTENT
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent (0,
PendingIntent.FLAG_UPDATE_CURRENT);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD REGULAR
ASIGNAMOS EL PENDINGINTENT
builder.setContentIntent(resultPendingIntent);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD ESPECIAL
ASIGNAMOS EL PENDINGINTENT
OBTENEMOS EL PENDINGINTENT
SE AÑADEN BANDERAS DE AISLAMIENTO
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD ESPECIAL
SE AÑADEN BANDERAS DE AISLAMIENTO
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_CLEAR_TASK);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD ESPECIAL
OBTENEMOS EL PENDINGINTENT
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,
PendingIntent.FLAG_UPDATE_CURRENT);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ESTABLECER DESTINO
ACTIVIDAD ESPECIAL
ASIGNAMOS EL PENDINGINTENT
builder.setContentIntent(pendingIntent );
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
CONSTRUIMOS Y LANZAMOS LA
NOTIFICACIÓN
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: LANZAMOS LA NOTIFICACIÓN
builder.setAutoCancel(true);
notificador.notify(id, builder.build());
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: ELIMINÁNDOLAS
NOTIFICADOR.CANCELALL();
NOTIFICADOR.CANCEL(ID);
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: VARIOS DESTINOS
BUILDER.ADDACTION (ICONO, TEXTO, INTENT)
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: VERSIONES ACTUALES
BUILDER.SETFULLSCREENINTENT(PENDINGINTENT, TRUE)
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: SEGURIDAD
VISIBILITY_SECRET
VISIBILITY_PRIVATE
VISIBILITY_PUBLIC
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: SEGURIDAD
VISIBILITY_PUBLIC
Muestra todo el contenido de la
notificación hasta en la pantalla de
bloqueo.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: SEGURIDAD
VISIBILITY_PRIVATE
Muestra detalles mínimos de la
notificación como el icono y el titulo,
pero nada sobre el detalle en sí.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: SEGURIDAD
VISIBILITY_SECRET
No muestra ninguna información de
la notificación.
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
NOTIFICACIONES: SEGURIDAD
BUILDER.SETVISIBILITY(NOTIFICATIONCOMPAT.VISIBILITY_PUBLIC)
PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES
COMENZANDO A PROGRAMAR
© J.D.CABRERA
PROGRAMACIÓN MULTIMEDIA
Y
DISPOSITIVOS MÓVILES
DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES

Más contenido relacionado

Similar a DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES

Teconologia en informatica
Teconologia en informaticaTeconologia en informatica
Teconologia en informaticaDaniel078
 
Codigo ejemplo j2 me
Codigo ejemplo   j2 meCodigo ejemplo   j2 me
Codigo ejemplo j2 meOscar Eduardo
 
Ejercicios de-programacion-lenguaje-c
Ejercicios de-programacion-lenguaje-cEjercicios de-programacion-lenguaje-c
Ejercicios de-programacion-lenguaje-celizabetrelive
 
Segundo laboratorio de Android
Segundo laboratorio de AndroidSegundo laboratorio de Android
Segundo laboratorio de AndroidGDG Cali
 
Presentación Fuente interactiva concurso Smart Cities
Presentación Fuente interactiva concurso Smart CitiesPresentación Fuente interactiva concurso Smart Cities
Presentación Fuente interactiva concurso Smart CitiesFrancisco Rosales
 
6 Administración Android - Activity Manager 2
6 Administración Android -  Activity Manager 26 Administración Android -  Activity Manager 2
6 Administración Android - Activity Manager 2guidotic
 
Primera App - Laboratorio Android
Primera App - Laboratorio AndroidPrimera App - Laboratorio Android
Primera App - Laboratorio AndroidGDG Cali
 
Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Orlando Barcia
 
Programacion de arduino(JHANCARLOS RAMOS COTRINA)
Programacion de arduino(JHANCARLOS RAMOS COTRINA)Programacion de arduino(JHANCARLOS RAMOS COTRINA)
Programacion de arduino(JHANCARLOS RAMOS COTRINA)jhancarlos ramos cotrina
 

Similar a DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES (20)

DISPOSITIVOS MÓVILES: MENÚS Y SUBMMENÚS
DISPOSITIVOS MÓVILES: MENÚS Y SUBMMENÚSDISPOSITIVOS MÓVILES: MENÚS Y SUBMMENÚS
DISPOSITIVOS MÓVILES: MENÚS Y SUBMMENÚS
 
Teconologia en informatica
Teconologia en informaticaTeconologia en informatica
Teconologia en informatica
 
Codigo ejemplo j2 me
Codigo ejemplo   j2 meCodigo ejemplo   j2 me
Codigo ejemplo j2 me
 
Ejercicios de-programacion-lenguaje-c
Ejercicios de-programacion-lenguaje-cEjercicios de-programacion-lenguaje-c
Ejercicios de-programacion-lenguaje-c
 
Segundo laboratorio de Android
Segundo laboratorio de AndroidSegundo laboratorio de Android
Segundo laboratorio de Android
 
DISPOSITIVOS MÓVILES: FRAGMENTOS
DISPOSITIVOS MÓVILES: FRAGMENTOSDISPOSITIVOS MÓVILES: FRAGMENTOS
DISPOSITIVOS MÓVILES: FRAGMENTOS
 
INSTALACIÓN ANDROID STUDIO 1
INSTALACIÓN ANDROID STUDIO 1INSTALACIÓN ANDROID STUDIO 1
INSTALACIÓN ANDROID STUDIO 1
 
DISPOSITIVOS MÓVILES: LISTVIEW
DISPOSITIVOS MÓVILES: LISTVIEWDISPOSITIVOS MÓVILES: LISTVIEW
DISPOSITIVOS MÓVILES: LISTVIEW
 
Presentación Fuente interactiva concurso Smart Cities
Presentación Fuente interactiva concurso Smart CitiesPresentación Fuente interactiva concurso Smart Cities
Presentación Fuente interactiva concurso Smart Cities
 
6 Administración Android - Activity Manager 2
6 Administración Android -  Activity Manager 26 Administración Android -  Activity Manager 2
6 Administración Android - Activity Manager 2
 
DISPOSITIVOS MÓVILES: SENSORES
DISPOSITIVOS MÓVILES: SENSORESDISPOSITIVOS MÓVILES: SENSORES
DISPOSITIVOS MÓVILES: SENSORES
 
20 programas
20 programas20 programas
20 programas
 
Primera App - Laboratorio Android
Primera App - Laboratorio AndroidPrimera App - Laboratorio Android
Primera App - Laboratorio Android
 
Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011
 
DISPOSITIVOS MÓVILES: MATERIAL DESIGN
DISPOSITIVOS MÓVILES: MATERIAL DESIGNDISPOSITIVOS MÓVILES: MATERIAL DESIGN
DISPOSITIVOS MÓVILES: MATERIAL DESIGN
 
Android bootcamp 101 v2.0
Android bootcamp 101 v2.0Android bootcamp 101 v2.0
Android bootcamp 101 v2.0
 
Keypad 4 x4
Keypad 4 x4Keypad 4 x4
Keypad 4 x4
 
Programacion de arduino(JHANCARLOS RAMOS COTRINA)
Programacion de arduino(JHANCARLOS RAMOS COTRINA)Programacion de arduino(JHANCARLOS RAMOS COTRINA)
Programacion de arduino(JHANCARLOS RAMOS COTRINA)
 
J2ME. JavaME
J2ME. JavaMEJ2ME. JavaME
J2ME. JavaME
 
DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN IIDISPOSITIVOS MÓVILES: MATERIAL DESIGN II
DISPOSITIVOS MÓVILES: MATERIAL DESIGN II
 

Más de Jacinto Cabrera Rodríguez

Más de Jacinto Cabrera Rodríguez (20)

REDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS IIREDES: DUCTUS Y CANALETAS II
REDES: DUCTUS Y CANALETAS II
 
OTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTOOTRAS UNIDADES DE ALMACENAMIENTO
OTRAS UNIDADES DE ALMACENAMIENTO
 
LAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTELAS FUENTES EN LA HISTORIA DEL ARTE
LAS FUENTES EN LA HISTORIA DEL ARTE
 
TOULOUSE LAUTREC
TOULOUSE LAUTRECTOULOUSE LAUTREC
TOULOUSE LAUTREC
 
PRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIAPRÁCTICA MANEJO DE MEMORIA
PRÁCTICA MANEJO DE MEMORIA
 
ZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETASZÓCALOS DE TARJETAS
ZÓCALOS DE TARJETAS
 
ZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADORZÓCALOS DE PROCESADOR
ZÓCALOS DE PROCESADOR
 
TIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIATIPOS DE MÓDULOS DE MEMORIA
TIPOS DE MÓDULOS DE MEMORIA
 
CARCASAS DE ORDENADOR
CARCASAS DE ORDENADORCARCASAS DE ORDENADOR
CARCASAS DE ORDENADOR
 
TIPOS DE TORNILLOS
TIPOS DE TORNILLOSTIPOS DE TORNILLOS
TIPOS DE TORNILLOS
 
PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26PRACTICAS DE REDES: PRÁCTICA 26
PRACTICAS DE REDES: PRÁCTICA 26
 
PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25PRACTICAS DE REDES: PRÁCTICA 25
PRACTICAS DE REDES: PRÁCTICA 25
 
PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24PRACTICAS DE REDES: PRÁCTICA 24
PRACTICAS DE REDES: PRÁCTICA 24
 
PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23PRACTICAS DE REDES: PRÁCTICA 23
PRACTICAS DE REDES: PRÁCTICA 23
 
REDES: TOMAS DE DATOS
REDES: TOMAS DE DATOSREDES: TOMAS DE DATOS
REDES: TOMAS DE DATOS
 
PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22PRACTICAS DE REDES: PRÁCTICA 22
PRACTICAS DE REDES: PRÁCTICA 22
 
PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21PRACTICAS DE REDES: PRÁCTICA 21
PRACTICAS DE REDES: PRÁCTICA 21
 
PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20PRACTICAS DE REDES: PRÁCTICA 20
PRACTICAS DE REDES: PRÁCTICA 20
 
PRACTICAS DE REDES: PRÁCTICA 19
PRACTICAS DE REDES: PRÁCTICA 19PRACTICAS DE REDES: PRÁCTICA 19
PRACTICAS DE REDES: PRÁCTICA 19
 
PRACTICAS DE REDES: PRÁCTICA 18
PRACTICAS DE REDES: PRÁCTICA 18PRACTICAS DE REDES: PRÁCTICA 18
PRACTICAS DE REDES: PRÁCTICA 18
 

DISPOSITIVOS MÓVILES: DIÁLOGOS Y NOTIFICACIONES

  • 1.
  • 3.
  • 4. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA COMENZANDO A PROGRAMAR
  • 5. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGOS Y NOTIFICACIONES
  • 6. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA LA CLASE DIALOGFRAMENT LA CLASE ALERTDIALOG DIÁLOGOS SNACKBAR NOTIFICACIONES EN BARRA DE ESTADO TOAST
  • 7. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TOAST
  • 8. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TOAST Mensaje que se muestra en pantalla durante unos segundos al usuario para luego volver a desaparecer automáticamente sin requerir ningún tipo de actuación.
  • 9. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SETGRAVITY LENGTH_SHORT TOAST LENGTH_LONG
  • 10. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA import android.widget.Toast; TOAST
  • 11. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TOAST Toast toast =Toast.makeText(getApplicationContext(), “MENSAJE", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER|Gravity.LEFT,0,0); toast.show();
  • 12. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA PERSONALIZAR EL TOAST
  • 13. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TOAST Toast toast = new Toast(getApplicationContext()); LayoutInflater inflater = getLayoutInflater(); View layout = inflater.inflate(R.layout.toast_layout, (ViewGroup) findViewById(R.id.layout)); TextView texto= (TextView)layout.findViewById(R.id.texto); texto.setText(“TOAST PERSONALIZADO"); toast.setDuration(Toast.LENGTH_SHORT); toast.setView(layout); toast.show();
  • 14. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGOS
  • 15. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGOS Los diálogos de Android los podremos utilizar con distintos fines: Mostrar un mensaje. Pedir una confirmación rápida. Solicitar al usuario una elección entre varias alternativas.
  • 16. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA import app.Dialogo Import android.app.ProgressDialog; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; DIÁLOGOS
  • 17. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO SIMPLE
  • 18. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO SIMPLE showDialog(0); @Override protected Dialog onCreateDialog(int id){ Dialog dialogo=null; if(id==0){ Builder builder=new AlertDialog.Builder(this); builder=builder.setIcon(R.drawable.ic_launcher); builder=builder.setTitle("EJEMPLO DE DIÁLOGO"); dialogo=builder.create()} return dialogo; }
  • 19. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON BOTONES
  • 20. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA showDialog(0); @Override protected Dialog onCreateDialog(int id) { DListener listener= new DListener(); Dialog dialogo=null; if(id==0){ Builder builder=new AlertDialog.Builder(this); builder=builder.setIcon(R.drawable.ic_launcher); builder=builder.setTitle(“DIÁLOGO CON BOTONES"); builder=builder.setMessage("Este es el mensaje"); builder=builder.setPositiveButton("BOTÓN PRIMERO", listener); builder=builder.setNegativeButton("BOTÓN SEGUNDO", listener); builder=builder.setNeutralButton("BOTÓN TERCERO", listener); dialogo=builder.create() } return dialogo; } DIÁLOGO CON BOTONES
  • 21. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON BOTONES class DListener implements DialogInterface.OnClickListener{ @Override public void onClick(DialogInterface dialog, int which) { if(which == DialogInterface.BUTTON_POSITIVE) tv.setText("BOTÓN PRIMERO PULSADO"); if(which == DialogInterface.BUTTON_NEGATIVE) tv.setText("BOTÓN SEGUNDO PULSADO"); if(which == DialogInterface.BUTTON_NEUTRAL) tv.setText("BOTÓN TERCERO PULSADO"); } }
  • 22. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON ITEMS
  • 23. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON ITEMS CharSequence[] items={"CASO 0","CASO 1","CASO 2","CASO 3","CASO 4","CASO 5"}; showDialog(0); @Override protected Dialog onCreateDialog(int id) { DListener listener= new DListener(); Dialog dialogo=null; if(id==0){ Builder builder=new AlertDialog.Builder(this); builder=builder.setIcon(R.drawable.ic_launcher); builder=builder.setTitle(“DIÁLOGO CON ITEMS"); builder=builder.setItems(items, listener); dialogo=builder.create() } return dialogo; }
  • 24. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON BOTONES class DListener implements DialogInterface.OnClickListener{ @Override public void onClick(DialogInterface dialog, int which) { tv.setText("PULSADO EL ITEM "+ which); } }
  • 25. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON SELECCIÓN
  • 26. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON SELECCIÓN CharSequence[] items={"CASO 0","CASO 1","CASO 2","CASO 3","CASO 4","CASO 5"}; showDialog(0); @Override protected Dialog onCreateDialog(int id) { DListener listener= new DListener(); Dialog dialogo=null; if(id==0){ Builder builder=new AlertDialog.Builder(this); builder=builder.setIcon(R.drawable.ic_launcher); builder=builder.setTitle(“seleccione una opción"); builder=builder.setSingleChoiceItems(items,0, listener) builder=builder.setPositiveButton("OK",listener) builder=builder.setNegativeButton("Cancelar",listener) dialogo=builder.create() } return dialogo; }
  • 27. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON SELECCIÓN class DListener implements DialogInterface.OnClickListener{ @Override public void onClick(DialogInterface dialog, int which) { if(which >= 0) tv.setText("HA PULSADO EL ITEM "+ which); if(which == DialogInterface.BUTTON_NEGATIVE) tv.setText("HA CANCELADO LA OPCIÓN"); } }
  • 28. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON PROGRESO
  • 29. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON PROGRESO showDialog(0); new MyAsyncTask().execute(); @Override protected Dialog onCreateDialog(int id) { progressDialog = new ProgressDialog(this); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setIcon(R.drawable.ic_launcher); progressDialog.setTitle("Progreso..."); return progressDialog; }
  • 30. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON PROGRESO class MyAsyncTask extends AsyncTask<Void,Void,Void>{ @Override protected Void doInBackground(Void...arg0){ for(int i=0;i<100;i++){ try { Thread.sleep(100); } catch (InterruptedException e) { } progreso=i+1; publishProgress(); } return null; } ACTUALIZACIÓN }
  • 31. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO CON PROGRESO protected void onProgressUpdate(Void...progress){ progressDialog.setProgress(progreso); tv.setText("PROGRESO TERMINADO"); if(progreso==100)progressDialog.dismiss(); }
  • 32. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO PERSONALIZADO
  • 33. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO PRESONALIADO showDialog(0); @Override protected Dialog onCreateDialog(int id) { Dialog dialogo new Dialog(this);; Window w = dialogo.getWindow(); int flag = WindowManager.LayoutParams.FLAG_BLUR_BEHIND; w.setFlags(flag,flag); dialogo.setTitle("DIÁLOGO BÁSICO"); dialogo.setContentView(R.layout.dialogo); Button botonDialogo=(Button) dialogo.findViewById(R.id.buttonDialogo); botonDialogo.setOnClickListener(new AceptarListener()); return dialogo; }
  • 34. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO TIME/DATE
  • 35. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA import android.app.DatePickerDialog; import android.app.TimePickerDialog; import android.widget.DatePicker; import android.widget.TimePicker; DIÁLOGO TIME/DATE
  • 36. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DATE
  • 37. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO TIME/DATE final Calendar c = Calendar.getInstance(); mYear = c.get(Calendar.YEAR); mMonth = c.get(Calendar.MONTH); mDay = c.get(Calendar.DAY_OF_MONTH); DatePickerDialog dpd = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { } }, mYear, mMonth, mDay); dpd.show();
  • 38. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA TIME
  • 39. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA DIÁLOGO TIME/DATE final Calendar c = Calendar.getInstance(); final Calendar c = Calendar.getInstance(); mHour = c.get(Calendar.HOUR_OF_DAY); mMinute = c.get(Calendar.MINUTE); TimePickerDialog tpd = new TimePickerDialog(this, new DatePickerDialog.OnDateSetListener() { @Override public void onDateSet(DatePicker view, int hourOfDay, int minute) { } }, mHour, mMinute, false); tpd.show();
  • 40. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA BARRA DE ESTADO NOTIFICACIONES
  • 41. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES Una notificación es un mensaje que se puede visualizar en la parte exterior del interfaz de la aplicación en uso
  • 42. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES Son las que se muestran en nuestro dispositivo cuando recibimos un mensaje SMS, tenemos actualizaciones disponibles, reproductor de música abierto en segundo plano
  • 43. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES
  • 44. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES MENSAJE NUEVO Próxima reunión semanal 09:00 TÍTULO/NOMBRE CONTENIDO ICONO MARCA TEMPORAL
  • 45. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES
  • 46. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA PUEDEN ESTILIZARSE MEDIANTE SETSTYLE() EL IDENTIFICADOR DA ACCESO AL INTERFAZ NOTIFICACIONES PUEDEN SER CLASIFICADAS EN GRUPOS
  • 47. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA CONSTRUIMOS LANZAMOS NOTIFICACIÓN ESTABLECEMOS ACTIVIDAD DESTINO NOTIFICACIONES CREAMOS NOTIFICACIÓN
  • 48. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA CREAR NOTIFICACIÓN
  • 49. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: CREAR NOTIFICACIÓN private NotificationManager notificador; ..//.. notificador = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  • 50. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA LIBRERÍA android-support-v4.jar; import android.app.NotificationManager; import android.support.v4.app.NotificationCompat; NOTIFICACIONES: CREAR NOTIFICACIÓN
  • 51. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: CREAR NOTIFICACIÓN NotificationCompat.Builder Builder = new NotificationCompat.Builder(Actividad90.this) .setSmallIcon(android.R.drawable.stat_sys_warning) .setLargeIcon((((BitmapDrawable)getResources() .getDrawable(R.drawable.ic_launcher)).getBitmap())) .setContentTitle("MENSAJE DE ALERTA") .setContentText("Ejemplo de notificación.") .setContentInfo("4") .setTicker("AVISO DE NOTIFICACIÓN");
  • 52. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA LIBRERÍA android-support-v7.jar; import android.app.NotificationManager; import android.support.v7.app.NotificationCompat; NOTIFICACIONES: CREAR NOTIFICACIÓN
  • 53. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: CREAR NOTIFICACIÓN NotificationCompat.Builder Builder = new (NotificationCompat.Builder) NotificationCompat.Builder(Notifi01.this) .setSmallIcon(android.R.drawable.stat_sys_warning) .setLargeIcon((((BitmapDrawable)getResources() .getDrawable(R.drawable.ic_launcher)).getBitmap())) .setContentTitle("MENSAJE DE ALERTA") .setContentText("Ejemplo de notificación.") .setContentInfo("4") .setTicker("AVISO DE NOTIFICACIÓN");
  • 54. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: CREAR NOTIFICACIÓN
  • 55. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA SETVIBRATE() SETCONTENTINFO() SETTICKER() SETCONTENTTEXT() SETCONTENTTITLE() SETLARGEICON() NOTIFICACIONES: CREAR NOTIFICACIÓN SETSMALLICON()
  • 56. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA ESTABLECER ACTIVIDAD DESTINO
  • 57. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO Se asigna acción al visualizar la notificación por el usuario mediante una instancia de la clase PendingIntent.
  • 58. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO Intent intent = new Intent(this, Actividad.class);
  • 59. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO PILA DE TRABAJO ACTIVIDAD ESPECIAL ACTIVIDAD REGULAR
  • 60. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD REGULAR ASIGNAMOS EL PENDINGINTENT OBTENEMOS EL PENDINGINTENT GENERAMOS REFERENCIA A LA PILA SE AÑADE LA ACTIVIDAD PADRE A LA PILA INICIALIZAMOS LA PILA SE CREA UNA PILA DE RETROCESO SE DECLARA UNA ACTIVIDAD PADRE
  • 61. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD REGULAR SE DECLARA UNA ACTIVIDAD PADRE <activity android:name=".Actividad" android:parentActivityName=".Notifi02"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="es.vcarmen.notifi02.Notifi02" /> </activity> SE DECLARA UNA ACTIVIDAD PADRE
  • 62. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD REGULAR INICIALIZAMOS LA PILA DE RETROCESO TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
  • 63. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD REGULAR SE AÑADE LA ACTIVIDAD PADRE A LA PILA stackBuilder.addParentStack(Actividad.class);
  • 64. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD REGULAR GENERAMOS REFERENCIA A LA PILA stackBuilder.addNextIntent(intent);
  • 65. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD REGULAR OBTENEMOS EL PENDINGINTENT PendingIntent resultPendingIntent = stackBuilder.getPendingIntent (0, PendingIntent.FLAG_UPDATE_CURRENT);
  • 66. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD REGULAR ASIGNAMOS EL PENDINGINTENT builder.setContentIntent(resultPendingIntent);
  • 67. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD ESPECIAL ASIGNAMOS EL PENDINGINTENT OBTENEMOS EL PENDINGINTENT SE AÑADEN BANDERAS DE AISLAMIENTO
  • 68. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD ESPECIAL SE AÑADEN BANDERAS DE AISLAMIENTO intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
  • 69. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD ESPECIAL OBTENEMOS EL PENDINGINTENT PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent, PendingIntent.FLAG_UPDATE_CURRENT);
  • 70. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ESTABLECER DESTINO ACTIVIDAD ESPECIAL ASIGNAMOS EL PENDINGINTENT builder.setContentIntent(pendingIntent );
  • 71. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA CONSTRUIMOS Y LANZAMOS LA NOTIFICACIÓN
  • 72. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: LANZAMOS LA NOTIFICACIÓN builder.setAutoCancel(true); notificador.notify(id, builder.build());
  • 73. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: ELIMINÁNDOLAS NOTIFICADOR.CANCELALL(); NOTIFICADOR.CANCEL(ID);
  • 74. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: VARIOS DESTINOS BUILDER.ADDACTION (ICONO, TEXTO, INTENT)
  • 75. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: VERSIONES ACTUALES BUILDER.SETFULLSCREENINTENT(PENDINGINTENT, TRUE)
  • 76. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: SEGURIDAD VISIBILITY_SECRET VISIBILITY_PRIVATE VISIBILITY_PUBLIC
  • 77. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: SEGURIDAD VISIBILITY_PUBLIC Muestra todo el contenido de la notificación hasta en la pantalla de bloqueo.
  • 78. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: SEGURIDAD VISIBILITY_PRIVATE Muestra detalles mínimos de la notificación como el icono y el titulo, pero nada sobre el detalle en sí.
  • 79. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: SEGURIDAD VISIBILITY_SECRET No muestra ninguna información de la notificación.
  • 80. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA NOTIFICACIONES: SEGURIDAD BUILDER.SETVISIBILITY(NOTIFICATIONCOMPAT.VISIBILITY_PUBLIC)
  • 81. PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES COMENZANDO A PROGRAMAR © J.D.CABRERA PROGRAMACIÓN MULTIMEDIA Y DISPOSITIVOS MÓVILES