IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Toasts

Vegeu Android Toasts. No utilitzeu els Toasts per a depurar ni fer xivatos utilitzeu els Logs. Vegeu logcat

Status bar

Recursos:

Qüestions prèvies. Compat Library

Els exemples es realitzen per a la classe:

NotificationCompat.Builder

Classe que trobareu disponible a la Support Library versió 4 (v4)

El suport per a notificacions es va introduir a Android 3.0 (API level 11).

NOTA: No confondre la classe pura Notification.Builder amb NotificationCompat.Builder!

Guia de dissenys does and dont's


Disseny icones

Exemple bàsic

Al crear una notificació és obligatori especificar el següent contingut

  • Icona (setSmallIcon): Podeu utilitzar l'assistent del Android SDK per crear icones/drawables de diferents mides. També es poden utilitzar icones pròpies del sistema (no cal crear-les propies )
  • Títol: Titol de la notificació
  • Text: setContentText
NotificationCompat.Builder mBuilder =
   new NotificationCompat.Builder(this)
   .setSmallIcon(R.drawable.notification_icon)
   .setContentTitle("My notification")
   .setContentText("Hello World!");

Docs:

Després cal indicar que es farà al fer touch a la notificació:

Intent resultIntent = new Intent(this, ResultActivity.class);
...
// Because clicking the notification opens a new ("special") activity, there's
// no need to create an artificial back stack.
PendingIntent resultPendingIntent =
    PendingIntent.getActivity(
    this,
    0,
    resultIntent,
    PendingIntent.FLAG_UPDATE_CURRENT
); 

S'associa l'acció a la notificació:

mBuilder.setContentIntent(resultPendingIntent);

I s'executa la notificació (es posa un enter a la notificació):

NotificationCompat.Builder mBuilder;
...
// Sets an ID for the notification
int mNotificationId = 001;
// Gets an instance of the NotificationManager service
NotificationManager mNotifyMgr = 
        (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
// Builds the notification and issues it.
mNotifyMgr.notify(mNotificationId, mBuilder.build()); 

Vegem un exemple on al fer touch a la notificació s'obre un activitat que hem indicat prèviament:

NotificationCompat.Builder mBuilder =
       new NotificationCompat.Builder(this)
       .setSmallIcon(R.drawable.notification_icon)
       .setContentTitle("My notification")
       .setContentText("Hello World!");
// Creates an explicit intent for an Activity in your app
Intent resultIntent = new Intent(this, ResultActivity.class);

// The stack builder object will contain an artificial back stack for the
// started Activity.
// This ensures that navigating backward from the Activity leads out of
// your application to the Home screen.
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(ResultActivity.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
        stackBuilder.getPendingIntent(
           0,
           PendingIntent.FLAG_UPDATE_CURRENT
       );
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
   (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// mId allows you to update the notification later on.
mNotificationManager.notify(mId, mBuilder.build());

Llegiu:

http://developer.android.com/guide/topics/ui/notifiers/notifications.html#NotificationResponse

Enviar a una URL

https://github.com/googlesamples/android-BasicNotifications/

Google samples

Estan disponibles al SDK (si les instal·leu al SDK Manager) i es poden afegir a Android Studio fent un Import Samples

Push notifications

Vegeu Android Push Notifications

Vegeu també

Enllaços externs