To jest w API 11, więc jeśli tworzysz coś wcześniejszego niż 3.0, powinieneś nadal używać starego API.
Aktualizacja : klasa NotificationCompat.Builder została dodana do pakietu pomocy technicznej, dzięki czemu możemy użyć jej do obsługi poziomu API v4 i nowszych:
Myślę, że ktoś powinien powiedzieć Google, że ma poważne literówki na Notification.Builderstronie z dokumentami. Robiłem to, co mówili, ale nie miało to żadnego sensu. Przychodzę tutaj i widzę, że jest inaczej. Naprawdę doceniam twoją odpowiedź, ponieważ to uczyniło mnie świadomym błędu, który jest na doktorze.
NotificationBuilder.build () wymaga interfejsu API na poziomie 16 lub wyższym. Cokolwiek pomiędzy API Level 11 i 15, powinieneś użyć NotificationBuilder.getNotification ().
U mnie też działało dobrze. Dwie uwagi: 1) musisz utworzyć ikonę 32x32 dla „ic_launcher”. Biały rysunek na przezroczystym tle 2) musisz zdefiniować jakąś losową liczbę dla int FM_NOTIFICATION_ID = [yourFavoriteRandom];
dziękuję bardzo, mój problem był następujący: kiedy kliknąłem powiadomienie po raz drugi, poprzedni fragment był otwarty, a ta linia „PendingIntent.FLAG_UPDATE_CURRENT” rozwiązała mój problem i sprawiła, że mój dzień
Narzędzie Notification Builder jest przeznaczone wyłącznie dla interfejsu API systemu Android na poziomie 11 lub nowszym (Android 3.0 i nowsze).
Dlatego jeśli nie kierujesz reklamy na tablety Honeycomb, nie powinieneś używać narzędzia Notification Builder, ale raczej postępować zgodnie ze starszymi metodami tworzenia powiadomień, takimi jak poniższy przykład .
Android N umożliwia także grupowanie podobnych powiadomień, aby pojawiały się jako pojedyncze powiadomienie. Aby było to możliwe, Android N korzysta z istniejącegoNotificationCompat.Builder.setGroup() metody. Użytkownicy mogą rozwijać każde z powiadomień i wykonywać czynności, takie jak odpowiadanie i odrzucanie każdego z powiadomień, indywidualnie z poziomu powiadomień.
To jest wcześniej istniejący przykład, który przedstawia prostą usługę, która wysyła powiadomienia przy użyciu NotificationCompat. Każda nieprzeczytana rozmowa użytkownika jest wysyłana jako osobne powiadomienie.
Ten przykład został zaktualizowany, aby wykorzystać nowe funkcje powiadomień dostępne w systemie Android N.
cześć, czy możesz powiedzieć, jak ta metoda działa w systemie Android 6.0, gdy korzystamy z biblioteki downloader_library. Jestem na Eclipse SDK - 25.1.7 || ADT 23.0.X niestety || Biblioteka rozszerzeń Google APK i biblioteka licencjonowania zarówno 1.0
Miałem problem z tworzeniem powiadomień (tylko dla Androida 4.0+).
Ten link pokazał mi dokładnie, co robię źle i mówi, co następuje:
Required notification contents
A Notificationobject must contain the following:
A small icon,setby setSmallIcon()
A title,setby setContentTitle()Detail text,setby setContentText()
Zasadniczo brakowało mi jednego z nich. Jako podstawę do rozwiązywania problemów z tym, upewnij się, że masz przynajmniej wszystkie z nich. Miejmy nadzieję, że to uratuje komuś ból głowy.
Na wypadek, gdyby to komuś pomogło ... Miałem duży problem z konfiguracją powiadomień za pomocą pakietu wsparcia podczas testowania na nowszych i starszych interfejsach API. Udało mi się zmusić je do pracy na nowszym urządzeniu, ale otrzymałem test błędu na starym urządzeniu. W końcu udało mi się usunąć wszystkie importy związane z funkcjami powiadomień. W szczególności NotificationCompat i TaskStackBuilder. Wygląda na to, że podczas konfigurowania mojego kodu na początku import został dodany z nowszej kompilacji, a nie z pakietu wsparcia. Potem, gdy chciałem później zaimplementować te elementy podczas zaćmienia, nie zostałem poproszony o ich ponowne importowanie. Mam nadzieję, że to ma sens i pomaga komuś innemu :)
// This is a working NotificationprivatestaticfinalintNotificID=01;
b=(Button) findViewById(R.id.btn);
b.setOnClickListener(newView.OnClickListener(){@Overridepublicvoid onClick(View v){Notification notification=newNotification.Builder(MainActivity.this).setContentTitle("Notification Title").setContentText("Notification Description").setSmallIcon(R.mipmap.ic_launcher).build();NotificationManager notificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);
notification.flags |=Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(NotificID,notification);}});}
samowystarczalny: skopiuj wklej, a zostanie skompilowany i uruchomiony
za pomocą przycisku, aby wygenerować tyle powiadomień, ile chcesz i grać z intencją i identyfikatorami powiadomień
Źródło:
import android.app.Activity;import android.app.Notification;import android.app.NotificationManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.widget.Button;publicclassMainextendsActivity{privateint i;@Overrideprotectedvoid onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);finalButton button =newButton(this);
button.setText("click me");
button.setOnClickListener(newView.OnClickListener(){@Overridepublicvoid onClick(View view){finalNotification notification =newNotification.Builder(Main.this)/* Make app open when you click on the notification. */.setContentIntent(PendingIntent.getActivity(Main.this,Main.this.i,newIntent(Main.this,Main.class),PendingIntent.FLAG_CANCEL_CURRENT)).setContentTitle("title").setAutoCancel(true).setContentText(String.format("id = %d",Main.this.i))// Starting on Android 5, only the alpha channel of the image matters.// https://stackoverflow.com/a/35278871/895245// `android.R.drawable` resources all seem suitable..setSmallIcon(android.R.drawable.star_on)// Color of the background on which the alpha image wil drawn white..setColor(Color.RED).build();finalNotificationManager notificationManager =(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(Main.this.i, notification);// If the same ID were used twice, the second notification would replace the first one. //notificationManager.notify(0, notification);Main.this.i++;}});this.setContentView(button);}}
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.