Почему Android игнорирует создание Уведомления?

У меня есть код, и он просто не работает, поэтому я прошу кого-нибудь помочь мне. Информация об этом конкретном вопросе очень мало.

Основная деятельность


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 ( осознавая, что я неправильно это сделал, но поскольку это так, я собираюсь с ним)


 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 } } 

манифест


 <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> 

Это должно быть все. Я пытаюсь запустить его как есть, и он не показывает мне ничего. Я запускаю его на эмуляторе, это действительно важно.

EDIT: Когда я говорю, что это не работает, я имею в виду, что ничего не всплывает. Он работает нормально, но уведомление никогда не появляется.

Проблема: Введите описание изображения здесь

Таким образом, проблема сужается до того, как Android просто игнорирует мое уведомление. Проблема в том, что это не говорит мне, почему -_- поэтому я не могу это исправить. Любые эксперты по этому вопросу видят что-то не так с моим кодом, чтобы вызвать уведомление? Имеет ли значение это на эмуляторе?

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

Это, по крайней мере, для первого взгляда

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); 

Я столкнулся с тем же вопросом. Если вы не укажете значок при создании «нового уведомления ()», уведомление не появится.

Ну, урок узнал об уведомлениях. Причина, по которой я получал ошибку, заключалась в том, что img ДОЛЖЕН быть добавлен, если нет, то он не будет отображаться! Все остальное, что у меня было, было в основном правильным, за исключением того, что Владимир любезно мог указать. Публикация этого здесь, если другие люди получают аналогичную проблему, просто проверяют уведомления.

Это связано с тем, что вы не устанавливаете значок уведомления. Если вы установили значок notificaiton, он должен работать. Сам журнал говорит, что вы не можете отправлять уведомление без изображения.

Похоже, вы забыли установить Icon. Вам нужно по крайней мере установить значок по умолчанию.

Попробуй это..

 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