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