Próbuję uruchomić usługę pierwszego planu. Otrzymuję powiadomienie, że usługa się uruchamia, ale powiadomienie jest zawsze blokowane. Sprawdziłem dwukrotnie, czy aplikacja może wyświetlać powiadomienia w informacjach o aplikacji na moim urządzeniu. Tu jest mój kodu:Powiadomienie o usłudze pierwszego planu systemu Android nie wyświetlające się
private void showNotification() {
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.setAction(Constants.ACTION.MAIN_ACTION);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
| Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0,
notificationIntent, 0);
Bitmap icon = BitmapFactory.decodeResource(getResources(),
R.mipmap.ic_launcher);
Notification notification = new NotificationCompat.Builder(getApplicationContext())
.setContentTitle("Revel Is Running")
.setTicker("Revel Is Running")
.setContentText("Click to stop")
.setSmallIcon(R.mipmap.ic_launcher)
//.setLargeIcon(Bitmap.createScaledBitmap(icon, 128, 128, false))
.setContentIntent(pendingIntent)
.setOngoing(true).build();
startForeground(Constants.FOREGROUND_SERVICE,
notification);
Log.e(TAG,"notification shown");
}
tutaj jest tylko błąd widzę w relacji: 06-20 12:26:43.635 895-930/? E/NotificationService: Suppressing notification from the package by user request.
Czy istnieje wygodniejszy sposób poradzenia sobie z tym? to jest support/compat-style? Ten sam kod, który działa na obu platformach sprzed 26 lat i 26+, bez użycia "jeśli" i duplikowania kodu. –
if (Build.VERSION.SDK_INT> = Build.VERSION_CODES.O) {createNotificationChannel (context);} // REST OF CODE HERE –
Ale w tym nowym fragmencie kodu zauważam, że wywołujesz 'mNotifyManager.notify () 'zamiast' startForeground() '. W takim przypadku czy to naprawdę czyni pierwszą usługę? –