Android – уведомления о выпуске GCM не отображаются в списке уведомлений

Я работаю над своим первым Android-приложением, чтобы использовать службу облачных сообщений Google (GCM) для push-уведомлений. Я дошел до того, что могу успешно отправить сообщение из своего серверного приложения и зарегистрировать содержимое сообщения в событии onMessage в моем классе GCMIntentService в клиентском приложении. Однако я не вижу никаких визуальных признаков на устройстве, что сообщение получено. Я ожидал, что сообщение появится в раскрывающемся списке уведомлений на телефоне, как это происходит на iPhone. Нужно ли это кодировать вручную? Также существует общий способ отображения сообщения независимо от того, какая активность активна в настоящий момент, и если приложение не работает в фоновом режиме? Любая помощь оценивается.

Solutions Collecting From Web of "Android – уведомления о выпуске GCM не отображаются в списке уведомлений"

Этот код будет генерировать уведомление на панели управления Android в верхней части экрана. Этот код создаст новое намерение, которое направит пользователя на «Home.class» после нажатия на уведомление в верхней панели. Если вы хотите, чтобы он делал что-то конкретное на основе текущей активности, вы могли отправлять запросы широковещательной передачи из GCMIntentService в другие ваши действия.

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

Обратите внимание: этот пример использует ресурсы в R.drawable и R.String, которые должны присутствовать на работе, но это должно дать вам эту идею. См. Это для получения дополнительной информации о уведомлениях о состоянии http://developer.android.com/guide/topics/ui/notifiers/index.html, а также о вещательных приемниках. http://developer.android.com/reference/android/content/BroadcastReceiver.html

Если вы используете GcmListenerService, вы можете использовать этот код, добавить в свой onMessageReceived 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()); }