style notification example custom app android notifications fragmentation

example - notifications android



Android: Notificación que no funciona en 2.3.6(Samsung galaxy y) (3)

Como CommonsWare sugirió, ejecuté la aplicación en un emulador 2.3 y se bloqueó. La razón por la que ContentIntent no estaba configurado. GingerBread espera un ContentIntent . Así que agregué una intención pendiente de simulación como:

PendingIntent pi = PendingIntent.getBroadcast(this, 0, new Intent(), PendingIntent.FLAG_UPDATE_CURRENT); Notification notification = new NotificationCompat.Builder(this).setAutoCancel(true) .setContentTitle(userString) .setContentText("Queued") .setContentIntent(pi) .setSmallIcon(R.drawable.stat_sys_download_done) .setWhen(System.currentTimeMillis()) .setTicker(tickerText) .build();

Se ha confirmado que el siguiente código funciona bien en dispositivos que ejecutan HONEYCOMB +. Sin embargo, en Samsung galaxy Y no está produciendo ninguna notificación.

String tickerText = userString + " Download Queued"; Notification notification = new NotificationCompat.Builder(this).setAutoCancel(true) .setContentTitle(userString) .setContentText("Queued") .setSmallIcon(R.drawable.stat_sys_download_done) .setWhen(System.currentTimeMillis()) .setTicker(tickerText) .build(); if(DBG_ENABLE) { LogUtils.logD(TAG_LOG, "Posting queue notification : " + 0); } NotificationManager notificationManager = (NotificationManager) getApplicationContext().getSystemService(NOTIFICATION_SERVICE); notificationManager.notify(0, notification);

Nota :

  • Veo la "Notificación de cola de publicación" en los registros.
  • He copiado el stat_sys_download_done de android sdk en mi proyecto.

No puedo pensar en una forma de solucionar este problema. No estoy seguro de si me estoy perdiendo algo. Cualquier sugerencia para arreglar esto es apreciada.


Cuando probé la solución anterior, se colgó la aplicación simplemente declarando el PendingIntent vacío como se muestra. Decidiendo que tenía un problema de alcance, porque estoy codificando esta notificación en un BroadcastListener, moví el intento pendiente al método onReceive del oyente, y usé el contexto entrante y la intención en lugar de dummys. Eso funciona perfectamente en mi teléfono Galaxy 2.3.6. Aquí está mi código:

BroadcastReceiver sitInReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String target = intent.getStringExtra("target"); .... PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); notifB.setContentIntent(pi); NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); int nmId=1; // mId allows you to rewrite the same the notification or make a different one. mNotificationManager.notify(nmId, notifB.build()); }

Tenga en cuenta que he declarado el constructor, notifB, fuera del oyente donde se declaran todos los datos no dinámicos:

NotificationCompat.Builder notifB = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_launcher) .setAutoCancel(true);


y0u también puede hacer esto. funciona en 2.3 y 2.3+

Notification notification = new NotificationCompat.Builder(this) .setTicker("new notification") .setContentTitle("title") .setContentText("hello").setSmallIcon(R.drawable.ic_launcher) .setContentIntent(pendingIntent) .addAction(android.R.drawable.ic_media_play, "play",pendingIntent).build();