SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
SeviBus Wear
Grupo 4
Índice
Idea
Demo
Cómo se hace
TO-DO
Idea
Demo
Cómo se hace
Disparador
private void sendNotification() {

// cargo las líneas de las llegadas

ArrayMap<Linea, Llegada> llegadasMapa = new ArrayMap<>();

for (int i = 0; i < mLlegadas.size(); i++) {

int id = mLlegadas.keyAt(i);

Linea linea = getDBHelper().getDaoLinea().queryForId(id);

llegadasMapa.put(linea, mLlegadas.get(id));

}

// Envía la notificación

WearManager.sendWearNotification(getActivity(), llegadasMapa,
mParada);

}
1
Notificación I
NotificationCompat.InboxStyle inboxStyle = new
NotificationCompat.InboxStyle();

for (int i = 0; i < llegadasMapa.size(); i++) {

Linea linea = llegadasMapa.keyAt(i);

Llegada llegada = llegadasMapa.valueAt(i);

if (llegada != null && llegada.getBus1() != null) {

inboxStyle.addLine(String.format("Línea %s - %d min",
linea.getNumero(), llegada.getBus1().getTiempo()));

}

}
!
NotificationCompat.Builder builder = new
NotificationCompat.Builder(context)

.setSmallIcon(R.drawable.ic_launcher)

.setLargeIcon(BitmapFactory.decodeResource(context.getRes
ources(), R.drawable.bg_wear))

.setContentTitle(String.format("Llegadas parada %s",
parada.getNumero()))

.setContentText("Próximas llegadas SeviBus")

.setPriority(NotificationCompat.PRIORITY_LOW)

.setStyle(inboxStyle);
2
Notificación II
PendingIntent intent = PendingIntent.getBroadcast(context, 666,

new Intent(WearReceiver.ACTION_5_MINUTES)

.putExtra(WearReceiver.EXTRA_PARADA, parada.getNumero())

.putExtra(WearReceiver.EXTRA_MILLIS, 1 * 60 * 1000), 0);



Notification notification =
new WearableNotifications.Builder(builder)

.setMinPriority()

.addAction(new
WearableNotifications.Action.Builder(R.drawable.ic_action_actuali
zar, "En 5 minutos", intent).build())

.build();



NotificationManagerCompat.from(context).notify(0, notification);
2
Para más tarde
public class WearReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

long checkInMilliseconds =
intent.getIntExtra(EXTRA_MILLIS, 0);

int paradaId = intent.getIntExtra(EXTRA_PARADA, 0);

PendingIntent checkIntent =
PendingIntent.getService(context, 777, new
Intent(WearIntentService.ACTION_CHECK_WEAR).putExtra(EXTRA_PARADA
, paradaId), PendingIntent.FLAG_UPDATE_CURRENT);

AlarmManager am = (AlarmManager)
context.getSystemService(Context.ALARM_SERVICE);

am.setExact(AlarmManager.ELAPSED_REALTIME,
checkInMilliseconds, checkIntent);



NotificationManagerCompat.from(context).cancelAll();

}

}
3
Repetir
public class WearIntentService extends IntentService {

@Override

protected void onHandleIntent(Intent intent) {

int paradaId =
intent.getIntExtra(WearReceiver.EXTRA_PARADA, 0);

Parada parada = getParada(paradaId);

List<Linea> linea = getLineas(parada);

ArrayMap<Linea, Llegada> llegadas;

// Obtiene las llegadas de la parada

// ...



// Manda la notificacion

WearManager.sendWearNotification(this, llegadas, parada);

}

}
4
To-Do
To-Do
Favoritas cercanas
To-Do
Favoritas cercanas
Comandos de voz
+Sergio Rodríguez +Rafa Vázquez

Más contenido relacionado

La actualidad más candente

La actualidad más candente (11)

7.arreglos y vectores en c++
7.arreglos y vectores en c++7.arreglos y vectores en c++
7.arreglos y vectores en c++
 
Funciones
FuncionesFunciones
Funciones
 
Vectores en c++
Vectores en c++Vectores en c++
Vectores en c++
 
Ejercicios en java
Ejercicios en javaEjercicios en java
Ejercicios en java
 
Grupo4
Grupo4Grupo4
Grupo4
 
Carrera array carrrera
Carrera array carrreraCarrera array carrrera
Carrera array carrrera
 
3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos
3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos
3 desarollo manejo datos capitulo 3 -03 aplicaciones arreglo objetos
 
Ejercicios resueltos de java
Ejercicios resueltos de javaEjercicios resueltos de java
Ejercicios resueltos de java
 
Arreglos
ArreglosArreglos
Arreglos
 
Programacion semestral
Programacion semestralProgramacion semestral
Programacion semestral
 
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
3 desarollo manejo datos capitulo 3 -02 busqueda arreglo objetos
 

Similar a SeviBus Wear guía (7)

Aplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - ConsolaAplicación Cliente - Servidor / GUI - Consola
Aplicación Cliente - Servidor / GUI - Consola
 
Ejercicios resuletos de programacion
Ejercicios resuletos de programacionEjercicios resuletos de programacion
Ejercicios resuletos de programacion
 
Javascript no es vietnam
Javascript no es vietnamJavascript no es vietnam
Javascript no es vietnam
 
listado de numeros
listado de numeroslistado de numeros
listado de numeros
 
Arrays unidimensionales
Arrays unidimensionalesArrays unidimensionales
Arrays unidimensionales
 
Practica 3 _U3
Practica 3 _U3Practica 3 _U3
Practica 3 _U3
 
P3
P3P3
P3
 

SeviBus Wear guía

  • 4.
  • 7. Disparador private void sendNotification() {
 // cargo las líneas de las llegadas
 ArrayMap<Linea, Llegada> llegadasMapa = new ArrayMap<>();
 for (int i = 0; i < mLlegadas.size(); i++) {
 int id = mLlegadas.keyAt(i);
 Linea linea = getDBHelper().getDaoLinea().queryForId(id);
 llegadasMapa.put(linea, mLlegadas.get(id));
 }
 // Envía la notificación
 WearManager.sendWearNotification(getActivity(), llegadasMapa, mParada);
 } 1
  • 8. Notificación I NotificationCompat.InboxStyle inboxStyle = new NotificationCompat.InboxStyle();
 for (int i = 0; i < llegadasMapa.size(); i++) {
 Linea linea = llegadasMapa.keyAt(i);
 Llegada llegada = llegadasMapa.valueAt(i);
 if (llegada != null && llegada.getBus1() != null) {
 inboxStyle.addLine(String.format("Línea %s - %d min", linea.getNumero(), llegada.getBus1().getTiempo()));
 }
 } ! NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
 .setSmallIcon(R.drawable.ic_launcher)
 .setLargeIcon(BitmapFactory.decodeResource(context.getRes ources(), R.drawable.bg_wear))
 .setContentTitle(String.format("Llegadas parada %s", parada.getNumero()))
 .setContentText("Próximas llegadas SeviBus")
 .setPriority(NotificationCompat.PRIORITY_LOW)
 .setStyle(inboxStyle); 2
  • 9. Notificación II PendingIntent intent = PendingIntent.getBroadcast(context, 666,
 new Intent(WearReceiver.ACTION_5_MINUTES)
 .putExtra(WearReceiver.EXTRA_PARADA, parada.getNumero())
 .putExtra(WearReceiver.EXTRA_MILLIS, 1 * 60 * 1000), 0);
 
 Notification notification = new WearableNotifications.Builder(builder)
 .setMinPriority()
 .addAction(new WearableNotifications.Action.Builder(R.drawable.ic_action_actuali zar, "En 5 minutos", intent).build())
 .build();
 
 NotificationManagerCompat.from(context).notify(0, notification); 2
  • 10. Para más tarde public class WearReceiver extends BroadcastReceiver {
 @Override
 public void onReceive(Context context, Intent intent) {
 long checkInMilliseconds = intent.getIntExtra(EXTRA_MILLIS, 0);
 int paradaId = intent.getIntExtra(EXTRA_PARADA, 0);
 PendingIntent checkIntent = PendingIntent.getService(context, 777, new Intent(WearIntentService.ACTION_CHECK_WEAR).putExtra(EXTRA_PARADA , paradaId), PendingIntent.FLAG_UPDATE_CURRENT);
 AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
 am.setExact(AlarmManager.ELAPSED_REALTIME, checkInMilliseconds, checkIntent);
 
 NotificationManagerCompat.from(context).cancelAll();
 }
 } 3
  • 11. Repetir public class WearIntentService extends IntentService {
 @Override
 protected void onHandleIntent(Intent intent) {
 int paradaId = intent.getIntExtra(WearReceiver.EXTRA_PARADA, 0);
 Parada parada = getParada(paradaId);
 List<Linea> linea = getLineas(parada);
 ArrayMap<Linea, Llegada> llegadas;
 // Obtiene las llegadas de la parada
 // ...
 
 // Manda la notificacion
 WearManager.sendWearNotification(this, llegadas, parada);
 }
 } 4
  • 12. To-Do