在Android中推送通知?

时间:2011-05-06 11:16:06

标签: android notifications push

是否可以在Android中创建推送通知?我真正想要的是每当我向我的应用程序的用户说些什么时,我想要一些警报对话框“只”,如果我有话要说“新的更新现在在市场上可用,请更新你的应用”。有人能引导我吗?

12 个答案:

答案 0 :(得分:4)

有Android Cloud to Device Messaging framework(C2DM)。它需要Android 2.2或更高版本。如果您需要适用于以前版本的内容,Urban Airship可能会满足您的需求。我没有使用过,所以我不能说它们是否有任何好处。

修改:

  

重要提示:截至2012年6月26日,C2DM已正式弃用。   这意味着C2DM已停止接受新用户和配额   要求。 C2DM不会添加任何新功能。但是,应用程序使用   C2DM将继续发挥作用。鼓励现有C2DM开发人员   迁移到新版本的C2DM,称为Google Cloud Messaging for   Android(GCM)。

答案 1 :(得分:2)

在Android中显示通知的标准方式是Status Bar Notifications

如果您需要将通知从服务器推送到设备,可能需要查看Cloud to Device Messaging

答案 2 :(得分:2)

您可以使用此help

答案 3 :(得分:1)

也许this会帮助你。

答案 4 :(得分:1)

当我创建一个具有类似要求的应用程序时,我曾经玩过这个项目(我需要从远程硬件设备接收状态更新):

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

这里有一个关于它的Stackoverflow主题:

Push Notifications in Android Platform

另一个可能的答案是谷歌自己的Android云架构,但我不知道目前的状态。

答案 5 :(得分:1)

许多用户将因应用程序在未运行时弹出推送通知而关闭。 Android市场和亚马逊市场为您处理更新通知,因此除非您使用其他分发方式,否则可能不需要这样做。

另一种较少侵入性的方法是让您的应用在实际运行时检查更新。

答案 6 :(得分:1)

我使用了推送通知功能..

我已经提到了http://developer.android.com/guide/google/gcm/gs.html链接..

这完全没问题,你肯定会学到很多东西。

你必须按照说明去做。并且您将能够执行推送通知。

答案 7 :(得分:0)

自由自在的方法:

如果您的目标用户群不是很大(小于1000)并且您想要免费服务,那么Airbop是最好和最方便的。

Airbop Website 它通过其API使用Google Cloud Messaging服务,并提供良好的性能。我已将它用于我的两个项目,并且很容易实现它。

Parse和Urbanship等服务非常出色但付费并提供整个部署堆栈而不仅仅是推送通知。

如果只有推送服务是您的目标,Airbop将正常工作。

我没有使用Pushwoosh,但也是一个很好的选择。它允许推送到1,000,000台设备。

答案 8 :(得分:0)

Firebase(FCM)是Google在Android上发送推送通知的新方式(18/05/2016)。 Getting started guide

答案 9 :(得分:0)

步骤: - 1.说明: - 从https://console.developers.google.com获取一个帐户,然后创建一个项目,此处此项目有一些我们称为senderid的唯一ID。 步骤: - 2.在从左侧菜单中选择项目之后,您将看到一些功能列表。 步骤: - 3.然后为Google Cloud Messaging for Android启用api功能。 步骤: - 4.现在创建可以从中生成的服务器密钥(应用程序密钥)。转到API&单击创建新密钥BUTTON并生成没有任何IP地址的服务器密钥(无输入),然后在applicationId下面使用该服务器密钥(API密钥),然后在凭据中进行验证。 步骤: - 5.现在按照以下代码。 步骤: - 6.传递DeviceId,它将由Android开发人员提供RegId,并将PassIt作为输入字符串传递给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;
            }
        }

答案 10 :(得分:0)

  

不推荐使用GCM发送推送通知,使用Firebase云消息传递(FCM)

Google弃用了Google云消息传递(GCM)并推出了新的推送通知服务器,即Firebase云消息传递(FCM)。 FCM与GCM相同,FCM也是移动平台的跨平台消息传递解决方案

请查看此答案以获取更多详细信息: How to add a push notification in my own android app

答案 11 :(得分:0)

要在Android应用程序中send push notification,您需要在创建项目后在Firebase控制台中创建一个项目,然后将您重定向到项目仪表板,单击android图标并添加android项目包并保存。您需要下载google-services.json文件,该文件需要添加到您的android项目中。 您需要在项目依赖项中添加firebase库并同步您的项目。

您可以阅读有关Firebase push notification android实施的完整教程