Push-уведомление в Android? - PullRequest
5 голосов
/ 06 мая 2011

Можно ли создать Push-уведомление в Android? Что я хочу, так это чтобы каждый раз, когда у меня было что сказать пользователям моего приложения, я хочу, чтобы диалоговое окно оповещения появлялось «только», если у меня есть что-то вроде «Новое обновление теперь доступно на рынке, пожалуйста, обновите ваше приложение". Может ли кто-нибудь направить меня с этим?

Ответы [ 11 ]

4 голосов
/ 06 мая 2011

Имеется платформа Android Cloud to Device Messaging (C2DM).Требуется Android 2.2 или выше.Если вам требуется что-то, что работает с предыдущими версиями, Urban Airship имеет то, что может удовлетворить ваши потребности.Я не использовал ни того, ни другого, поэтому не могу сказать, хороши они или нет.

Редактировать:

Важно: C2DM официально объявлен устаревшим какот 26 июня 2012 г. Это означает, что C2DM прекратил принимать новых пользователей и запросы квот.Никакие новые функции не будут добавлены в C2DM.Однако приложения, использующие C2DM, продолжат работать.Существующим разработчикам C2DM рекомендуется перейти на новую версию C2DM, которая называется Google Cloud Messaging для Android (GCM).

2 голосов
/ 06 мая 2011

Вы можете использовать эту справку

2 голосов
/ 06 мая 2011

Стандартный способ отображения уведомлений в Android: Уведомления в строке состояния .

Если вам нужно отправить уведомление с сервера на устройства, возможно, вы захотите взглянуть на Облакона устройство обмена сообщениями .

1 голос
/ 04 сентября 2012

Я использовал эту функциональность push-уведомлений ..

Я сослался http://developer.android.com/guide/google/gcm/gs.html ссылка ..

Это прекрасно работает, и вы определенно узнаете много.

Вы просто должны делать в соответствии с инструкциями.и вы сможете выполнять Push-уведомления.

1 голос
/ 06 мая 2011

Многие пользователи будут отключены, если ваше приложение будет отображать push-уведомления, пока оно не запущено. Android market и Amazon market обрабатывают уведомления об обновлениях, поэтому, если вы не используете альтернативные средства распространения, это может не понадобиться.

Альтернативный, менее навязчивый способ состоит в том, чтобы проверять приложение на наличие обновлений при его фактическом запуске.

1 голос
/ 06 мая 2011

Однажды я играл с этим проектом, когда создавал приложение с похожим требованием (мне нужно было получать обновления статуса с удаленного аппаратного устройства):

http://tokudu.com/2010/how-to-implement-push-notifications-for-android/

Здесь есть тема Stackoverflow:

Push-уведомления в платформе Android

Другой возможный ответ - собственная структура Google Cloud от Google, но я пока не знаюстатус этого.

1 голос
/ 06 мая 2011

возможно это поможет вам.

0 голосов
/ 20 декабря 2016

Отправка push-уведомлений с использованием GCM устарела, используйте Firebase Cloud Messaging (FCM)

Google устарел в Google Cloud Messaging (GCM) и запустил новый сервер push-уведомлений, который является Firebase Cloud Messaging (FCM). FCM аналогичен GCM, FCM также является кроссплатформенным решением для обмена сообщениями для мобильных платформ

Проверьте этот ответ для более подробной информации: Как добавить push-уведомление в моем собственном приложении для Android

0 голосов
/ 22 сентября 2016

Шаг: - 1. Описание: - Получить учетную запись от https://console.developers.google.com, а затем создать один проект, и здесь у этого проекта есть некоторый уникальный идентификатор, который мы также назвали senderid. Шаг: - 2. После этого выберите проект в левом меню, после чего вы увидите список некоторых функций. Шаг: - 3. затем включите функции API для Google Cloud Messaging для Android. Шаг: - 4. теперь создайте Ключ сервера (Ключ приложения), который можно сгенерировать. Перейдите к APIs & Auth, а затем в Credentials после нажатия на кнопку создания нового ключа и сгенерируйте ключ сервера без любого IP-адреса (без ввода) и используйте этот ключ сервера (ключ API) ниже applicationId шаг: - 5. Теперь следуйте приведенному ниже коду. Шаг: - 6. Передайте DeviceId, который будет RegId, данный разработчиком Android, и передайте его в DeviceId в качестве строки ввода.

Ниже приводится метод отправки сообщения Android на сервер GCM

private Helpers.Response GCMAndroid(Notification notification)
        {
            var applicationID = " applicationID means google Api key"                                                                                                    
            var SENDER_ID = "SENDER_ID is nothing but your ProjectID (from API Console- google code)"                                   
            WebRequest tRequest;
            tRequest = WebRequest.Create("https://android.googleapis.com/gcm/send");
            tRequest.Method = "POST";
            tRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
            tRequest.Headers.Add(string.Format("Authorization: key={0}", applicationID));
            tRequest.Headers.Add(string.Format("Sender: id={0}", SENDER_ID));

            //string postData = "data.Alert=" + alertmessage + "&data.action-loc-key=" + actionKey + " &registration_id=" + deviceId + "&badge=" + (1).ToString() + "";
            var Details = JsonConvert.SerializeObject(notification.alertmessage);

            string postData = "collapse_key=score_update&time_to_live=108&delay_while_idle=1&data.message="
                + notification.alertmessage + "&data.time=" + System.DateTime.Now.ToString() + "&data.details=" + Details + "&registration_id=" + notification.deviceId + "";
            try
            {
                Byte[] byteArray = Encoding.UTF8.GetBytes(postData);
                tRequest.ContentLength = byteArray.Length;
                Stream dataStream = tRequest.GetRequestStream();
                dataStream.Write(byteArray, 0, byteArray.Length);
                dataStream.Close();
                WebResponse tResponse = tRequest.GetResponse();

                dataStream = tResponse.GetResponseStream();
                StreamReader tReader = new StreamReader(dataStream);
                String sResponseFromServer = tReader.ReadToEnd();   //Get response from GCM server.`enter code here`enter code here`
    enter code here
                tReader.Close();
                dataStream.Close();
                tResponse.Close();
                Helpers.Response Response = new Helpers.Response();
                Response.Message = "Success";
                Response.result = 1;
                return Response;
            }
            catch (Exception ex)
            {
                Helpers.Response Response = new Helpers.Response();
                Response.Message = ex.ToString();
                Response.result = 0;
                return Response;
            }
        }
0 голосов
/ 26 мая 2016

Firebase (FCM) - новый (18/05/2016) способ Google отправлять push-уведомления на Android. Руководство по началу работы

...