¿Por qué Android está ignorando la creación de la Notificación?

Tengo código, y simplemente no funciona, así que pido a alguien que me ayude. Hay muy poca información sobre este asunto específico.

Actividad principal


public class MainActivity extends Activity { public final int PENDING_INTENT_ID = 8; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button clickity = (Button)findViewById(R.id.alarm_button); clickity.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Calendar now = Calendar.getInstance(); now.add(Calendar.SECOND, 20); //Create a new PendingIntent used by the Alarm when it activates Intent intent = new Intent(v.getContext(), AlarmReciever.class); intent.setAction("SOME_AWESOME_TRIGGER_WORD"); intent.putExtra("info", "This String shows that the info is actually sent correctly"); PendingIntent pendingIntent = PendingIntent.getBroadcast(v.getContext(), PENDING_INTENT_ID, intent, PendingIntent.FLAG_UPDATE_CURRENT|Intent.FILL_IN_DATA); //Then Create the alarm manager to send this pending intent and set the date to go off AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, now.getTimeInMillis(), pendingIntent); } }); } 

AlarmReciever (Aware que lo escribí mal, pero ya que es cómo es, voy con él)


 public class AlarmReciever extends BroadcastReceiver{ @Override public void onReceive(Context c, Intent arg1) { //get a reference to NotificationManager String ns = Context.NOTIFICATION_SERVICE; NotificationManager mNotificationManager = (NotificationManager) c.getSystemService(ns); //Instantiate the notification CharSequence tickerText = "Hello"; long when = System.currentTimeMillis(); Notification.Builder builder = new Notification.Builder(c) .setTicker(tickerText) .setWhen(when) .setContentTitle(arg1.getStringExtra("info")) .setContentText("Success!!") .setAutoCancel(true); Notification notification = builder.getNotification(); mNotificationManager.notify(0, notification);//note the first argument, the ID should be unique } } 

Manifiesto


 <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <receiver android:name="com.testproject.AlarmReciever" android:enabled="true" android:exported="false" > <intent-filter> </receiver> </application> 

Eso debe ser todo. Estoy tratando de ejecutarlo como es y no me muestra nada. Lo estoy ejecutando en un emulador es que realmente importa.

EDIT: Cuando digo que no funciona, quiero decir que no aparece nada. Corre muy bien, pero la Notificación nunca aparece.

La cuestión: Introduzca aquí la descripción de la imagen

Así que el problema se reduce a Android simplemente ignorando mi notificación. El problema es que no me dice por qué -_- así que no puedo arreglarlo. ¿Algún experto en la materia ve algo mal con mi código para llamar a una notificación? ¿Importa que esté en un emulador?

 Intent intent = new Intent(v.getContext(), AlarmReciever.class); // intent.setAction("SOME_AWESOME_TRIGGER_WORD"); replace to: intent.setAction("com.testproject.SOME_AWESOME_TRIGGER_WORD"); 

Es al menos por primera vista

UPD:

 long firstTime = SystemClock.elapsedRealtime(); AlarmManager alarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE); alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, /* INTERVAL IN MS */ 20 * 1000, /* PendingIntent */ intent); 

Me encontré con el mismo problema. Si no especifica un icono al crear una "nueva Notificación ()", la notificación no aparecerá.

Bueno, la lección aprendida en Notificaciones. La razón por la que estaba recibiendo el error fue porque un img DEBE ser añadido, si no, no se mostrará! Todo lo demás que tenía era básicamente justo con la excepción de lo que Vladimir fue graciosamente capaz de señalar. Publicar esto aquí en caso de otros están recibiendo un problema similar sólo probar las notificaciones.

Esto se debe a que no está configurando el icono de notificación. Si establece el icono de notificación debe funcionar. El registro en sí indica que no puede enviar una notificación sin una imagen.

Parece que te olvidaste de poner Icon .. Necesitas atleast establecer un icono predeterminado ..

Prueba esto..

 Notification.Builder builder = new Notification.Builder(c) .setTicker(tickerText) .setWhen(when) .setContentTitle(arg1.getStringExtra("info")) .setContentText("Success!!") .setAutoCancel(true) .setSmallIcon(R.drawable.ic_launcher); //<--- this one 
  • Android - BroadcastReceiver no recibe intenciones personalizadas
  • ¿Cómo comprobar si Receiver está registrado en Android?
  • Administrador de alarmas que no funciona en intervalos de tiempo específicos
  • Problema al adquirir el bloqueo de activación del receptor de difusión
  • Repetir alarmas cada lunes en Android usig AlarmManager / BroadcastReceiver
  • PACKAGE_ADDED BroadcastReceiver no funciona
  • Cómo corregir Advertencia de pelusa de SMS BroadcastReceiver sin protección
  • Obtenga nivel de batería antes de que el receptor responda por Intent.ACTION_BATTERY_CHANGED
  • Implementar receptor de difusión dentro del servicio
  • Android: errores de difusión no ordenados con GCM
  • Enumeración usb Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.