Pracuję nad moją pierwszą aplikacją na Androida, która będzie korzystać z usługi Google Cloud Messaging (GCM) do wysyłania powiadomień. Doszedłem do punktu, w którym mogę wysłać wiadomość z mojej aplikacji serwera i zalogować treść wiadomości w zdarzeniu onMessage w mojej klasie GCMIntentService w aplikacji klienckiej. Jednak nie widzę żadnego wizualnego wskazania na urządzeniu, że odebrano wiadomość. Oczekiwałem, że wiadomość pojawi się na liście powiadomień w telefonie, tak jak na telefonie iPhone. Czy to musi być kodowane ręcznie? Czy istnieje również powszechna metoda wyświetlania komunikatu niezależnie od tego, która aktywność jest aktualnie aktywna i czy aplikacja jest bezczynna w tle? Każda pomoc doceniona.Android - powiadomienia wypychania GCM nie pojawiają się na liście powiadomień
Odpowiedz
Ten kod wygeneruje powiadomienie na pasku systemu Android u góry ekranu. Ten kod utworzy nową intencję, która przekieruje użytkownika do "Home.class" po kliknięciu powiadomienia na górnym pasku. Jeśli chcesz zrobić coś konkretnego na podstawie bieżącego działania, możesz wysyłać żądania transmisji z GCMIntentService do innych działań.
Intent notificationIntent=new Intent(context, Home.class);
generateNotification(context, message, notificationIntent);
private static void generateNotification(Context context, String message, Intent notificationIntent) {
int icon = R.drawable.icon;
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager)
context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(icon, message, when);
String title = context.getString(R.string.app_name);
// set intent so it does not start a new activity
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent intent =PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.setLatestEventInfo(context, title, message, intent);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notificationManager.notify(0, notification);
}
Zauważ, że ten przykład wykorzystuje zasoby w R.drawable i R.String, które będą musiały być obecne do pracy, ale powinno dać wam pomysł. Zobacz więcej informacji na temat powiadomień o stanie http://developer.android.com/guide/topics/ui/notifiers/index.html i dotyczących odbiorników transmisji. http://developer.android.com/reference/android/content/BroadcastReceiver.html
Jeśli używasz GcmListenerService można użyć tego kodu, dodać do swojej onMessageReceived na sendNotification()
@Override
public void onMessageReceived(String from, Bundle data) {
String message = data.getString("message");
sendNotification(message);
}
private void sendNotification(String message) {
Intent intent = new Intent(this, YOURCLASS.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
PendingIntent.FLAG_ONE_SHOT);
Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_park_notification)
.setContentTitle("Ppillo Message")
.setContentText(message)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}
- 1. Jak wysłać powiadomienia wypychania systemu Android za pośrednictwem GCM na C# .Net
- 2. Powiadomienia push na Androida: Google GCM a Amazon SNS?
- 3. TODO: komentarze nie pojawiają się na liście zadań
- 4. Google CCS (GCM) - projekt nie znajduje się na białej liście
- 5. Powiadomienia na Facebooku z mojej aplikacji pojawiają się i znika
- 6. Ograniczanie powiadomień GCM/FCM poprzez wyrejestrowanie
- 7. Koncentrator powiadomień Android Azure wyrejestrowanie
- 8. iPhone Powiadomienia powiadomień pocztowych
- 9. Android GCM Niektóre urządzenia nie rejestrujące się
- 10. Android GCM włącz światła
- 11. Problem przy otrzymywaniu powiadomień wypychanych na kliencie GCM
- 12. Zapobieganie wielu dźwiękom powiadomienia Android
- 13. Otrzymuj dane z powiadomienia GCM
- 14. Odbieranie powiadomień GCM na temat systemu Android, gdy aplikacja jest w stanie zatrzymania
- 15. Zakres adresów IP google GCM push serwer powiadomień?
- 16. APN, GCM (FCM): Jak dodawać multimedia do powiadomień?
- 17. Android GCM szyfrowania
- 18. Otwórz niestandardowy adres URL po kliknięciu powiadomienia wypychania WWW
- 19. Powiadomienia push GCM na Androida 3.1: wyłącz odbiornik transmisji
- 20. Jak dodać dźwięk powiadomienia mojej aplikacji do listy dźwięków powiadomień?
- 21. Powiadomienie push dla aplikacji Android GCM do aplikacji lokalizacyjnej
- 22. Android-Blackberry GCM: Nie można zarejestrować przeniesionej aplikacji na Androida do usług GCM
- 23. Android CursorLoader nie odpowiada na powiadomienia ContentProvider
- 24. Powiadomienia o duplikatach powiadomień w chmurze Firebase
- 25. Uruchamianie aplikacji po otrzymaniu powiadomienia GCM
- 26. Jak wyświetlić obraz w systemie powiadomień push (Gcm) na Androida?
- 27. Powiadomienie Big Text Android GCM
- 28. wycofanie/anulowanie powiadomienia gcm z Androidem
- 29. Otrzymuj bieżące powiadomienia Android
- 30. Powiadomienie na temat systemu Android nie znika po kliknięciu powiadomienia
To fantastyczne, wielkie dzięki. –
Witam, użyłem tej wtyczki https://github.com/marknutter/GCM-Cordova i postępowałem zgodnie ze wszystkimi instrukcjami. Mogę jednak otrzymywać wiadomości tylko w aplikacji, ale nie mogę wyświetlać powiadomień w obszarze powiadomień androidów. proszę doradź. Używam tej wtyczki, ponieważ używam phonegap @Zachary Moshansky –
Przykro mi, ale nigdy nie korzystałem z Phonegapa i nie jestem w stanie skomentować, jak sprawić, aby powiadomienia działały z nim –