android notification only sound plays notification

2019-06-09 11:57发布

问题:

i am trying to fire notification in at a particular time using AlarmManager and Notification manager. i am facing a strange problem. when notification is fired only sound plays but notification is not shown in the notification drawer. i got an error in the log

04-26 11:32:09.217    1222-1222/? E/NotificationService﹕ WARNING: In a future release this will crash the app: com.example.shiv.selftweak

my code is .

The class which calls the AlarmManager

        Intent intent1 = new Intent(this, FireNotification.class);
        PendingIntent pendingIntent = PendingIntent.getService(this, 1000, intent1, 0);
        AlarmManager am = (AlarmManager)this.getSystemService(ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),  pendingIntent);

FireNotification class

public class FireNotification extends Service {

    @Override
    public void onCreate() {
        Intent intent = new Intent(this, MainActivity.class);
        long[] pattern = {0, 300, 0};
        PendingIntent pi = PendingIntent.getActivity(this, 1234, intent, 0);
        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
                .setContentTitle("Self tweak")
                .setContentText("Habbits are waiting for last dones")
                .setVibrate(pattern)
                .setAutoCancel(false);

        mBuilder.setContentIntent(pi);
        mBuilder.setDefaults(Notification.DEFAULT_SOUND);
        mBuilder.setAutoCancel(false);
        NotificationManager mNotificationManager = (NotificationManager) this.getSystemService(NOTIFICATION_SERVICE);
        mNotificationManager.notify(1234, mBuilder.build());
    }

@Override
public IBinder onBind(Intent intent) {
    return null;
}

}

Android Menifest

 <service android:name=".FireNotification"></service>
        <intent-filter>

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>

when notification fires only sound plays. but it is not getting shown in the notification drawer which shows no notification.

回答1:

The problem is that you haven't specified mBuilder.setSmallIcon(R.drawable.ic_launcher).

Basically you have to set smallIcon, contentTitle and contentText. If you miss any of those the Notification will not be displayed at all! That's clearly specified HERE (also you can read more about notifications there as well).