Android中的推送通知?

Android中的推送通知?,android,notifications,push,Android,Notifications,Push,是否可以在Android中创建推送通知?我真正想要的是,每当我有话要对我的应用程序的用户说的时候,我想要一些提示对话框弹出“只有”如果我有话要说“新的更新现在可以在市场上买到,请更新你的应用程序”。有人能给我介绍一下吗?Android中显示通知的标准方式是 如果您需要将通知从服务器推送到您可能需要查看的设备。您可以使用此功能。可能会对您有所帮助。我曾经玩过这个项目,当时我正在创建具有类似要求的应用程序(我需要从远程硬件设备接收状态更新): 这里有一个Stackoverflow主题: 另一个可

是否可以在Android中创建推送通知?我真正想要的是,每当我有话要对我的应用程序的用户说的时候,我想要一些提示对话框弹出“只有”如果我有话要说“新的更新现在可以在市场上买到,请更新你的应用程序”。有人能给我介绍一下吗?

Android中显示通知的标准方式是


如果您需要将通知从服务器推送到您可能需要查看的设备。

您可以使用此功能。

可能会对您有所帮助。

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

这里有一个Stackoverflow主题:

另一个可能的答案是谷歌自己的安卓云框架,但我不知道目前的状况。

还有安卓(C2DM)。它需要安卓2.2或更高版本。如果您需要与先前版本兼容的产品,请提供适合您需要的产品。我都没用过,所以我说不出它们是好是坏

编辑:

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


当你的应用程序不运行时弹出推送通知,许多用户将被关闭。Android market和Amazon market为您处理更新通知,因此,除非您使用其他分发方式,否则可能不需要这样做


另一种侵入性较小的方法是,让你的应用程序在实际运行时检查更新。

我使用了推送通知功能

我曾参考过林克

这样做非常好,你肯定会学到很多东西


你只要按照指示去做就行了。您将能够执行推送通知。

自由简便的方法:

如果您的目标用户群不大(小于1000),并且您希望从免费服务开始,那么Airbop是最好、最方便的

它通过API使用Google云消息服务,并提供了良好的性能。我已经在我的两个项目中使用过它,而且它很容易实现

像和Urbanship这样的服务很好,但收费,提供完整的部署堆栈,而不仅仅是推送通知

若你们的目标只是推送服务,那个么Airbop就可以正常工作了

我没用过,但也是个不错的选择。它允许推送1000000台设备。

(FCM)是谷歌在Android上发送推送通知的新方式(2016年5月18日)。
步骤:-1。描述:-从中获取一个帐户,然后创建一个项目,此项目具有一些唯一的id,我们称之为senderid。 步骤:-2。之后,从左菜单中选择项目,然后您将看到一些功能列表。 步骤:-3。然后为Android的Google云消息服务启用api功能。 步骤:-4。现在创建可以从中生成的服务器密钥(应用程序密钥)。转到API&Auth,然后在单击“创建新密钥”按钮后进入凭据内部,生成不带任何IP地址的服务器密钥(无输入),并使用applicationId下面的服务器密钥(API密钥)。。 步骤:-5。现在遵循下面的代码。 步骤-6。传递将由Android开发者注册的DeviceId,并将其作为输入字符串传递到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;
            }
        }
不推荐使用GCM发送推送通知,请使用Firebase云消息(FCM)

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

查看此答案以了解更多详细信息:

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


您可以阅读有关C2DM实现的完整教程,该教程已被(GCM)所取代,它大大优于C2DM:例如,没有更多配额,它非常高效且非常快速。您将需要创建一个第三方服务器或使用诸如跟踪设备注册ID之类的服务,并处理诸如将推送请求分成1000个批次之类的事情。我已经发布了解决方案,用于推送通知的实现,可能会对您有所帮助。