remote - xamarin android google services json
El NotificationManager de Android me da un error de "ningún ícono pequeño válido" (3)
En realidad, no está configurando un icono para la notificación de inserción. Agregue .setSmallIcon(R.drawable.your_icon)
a su notificación.
NotificationCompat.Builder notification = new NotificationCompat.Builder(this)
.setContentTitle("New Password Request From " + (String) data.get("ip"))
.setSmallIcon(R.drawable.your_icon)
.addAction(acceptAction)
.addAction(declineAction);
Estoy teniendo un error extraño con el administrador de notificaciones.
@Override
public void onMessageReceived(String from, Bundle data)
{
Log.i(TAG, "IP : " + (String) data.get("ip"));
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Intent acceptNextIntent = new Intent(MainActivity.BROADCAST_KEY_ACCEPT);
// acceptNextIntent.putExtra("ip", (String) data.get("blah")); //add stuff here
PendingIntent acceptNextPendingIntent = PendingIntent.getBroadcast(this, 0, acceptNextIntent, 0);
Intent declineNextIntent = new Intent(MainActivity.BROADCAST_KEY_DECLINE);
PendingIntent declineNextPendingIntent = PendingIntent.getBroadcast(this, 0, declineNextIntent, 0);
NotificationCompat.Action acceptAction = new NotificationCompat.Action
.Builder(R.drawable.common_signin_btn_icon_disabled_focus_light, "Grant Request", acceptNextPendingIntent).build();
NotificationCompat.Action declineAction = new NotificationCompat.Action
.Builder(R.drawable.common_signin_btn_icon_focus_dark, "Decline Request", declineNextPendingIntent).build();
NotificationCompat.Builder notification = new NotificationCompat.Builder(this)
.setContentTitle("New Password Request From " + (String) data.get("ip"))
.addAction(acceptAction)
.addAction(declineAction);
notificationManager.notify(1, notification.build()); //ERROR HERE
Mensaje de error:
9.474 9327-9371/com.inh.amnesia_application I/MyGcmListenerService: IP : 128.239.213.39
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: Process: com.inh.amnesia_application, PID: 9327
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: java.lang.IllegalArgumentException: Invalid notification (no valid small icon): Notification(pri=0 contentView=com.inh.amnesia_application/0x1090085 vibrate=null sound=null defaults=0x0 flags=0x0 color=0x00000000 actions=2 vis=PRIVATE)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at android.app.NotificationManager.notify(NotificationManager.java:222)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at android.app.NotificationManager.notify(NotificationManager.java:194)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at com.inh.amnesia_application.MyGcmListenerService.onMessageReceived(MyGcmListenerService.java:65)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at com.google.android.gms.gcm.GcmListenerService.zzt(Unknown Source)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at com.google.android.gms.gcm.GcmListenerService.zzk(Unknown Source)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at com.google.android.gms.gcm.GcmListenerService.zza(Unknown Source)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at com.google.android.gms.gcm.GcmListenerService$1.run(Unknown Source)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
11-10 19:49:59.477 9327-9371/com.inh.amnesia_application E/AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
¿Esto significa que los iconos a los que estoy tratando de acceder no existen? No estoy seguro de cómo interpretar este error y buscar este mensaje de error no produce nada.
No ha llamado a setSmallIcon()
en NotificationCompat.Builder
. Esto proporciona el ícono que aparecerá en la barra de estado mientras la Notification
esté activa.
Según el code NotificationManager de Android
if (mContext.getApplicationInfo().targetSdkVersion > Build.VERSION_CODES.LOLLIPOP_MR1) {
if (notification.getSmallIcon() == null) {
throw new IllegalArgumentException("Invalid notification (no valid small icon): "
+ notification);
}
}
Este error solo ocurrió cuando configuró la API de destino> LOLLIPOP_MR1 (22) y la notificación no tiene un icono pequeño.