Android:推送数据通知
Posted
技术标签:
【中文标题】Android:推送数据通知【英文标题】:Android : Push data with notification 【发布时间】:2014-02-06 06:54:16 【问题描述】:我正在开发一个应用程序。该应用程序是基于客户端服务器的。
申请的需要是:
我想在没有网络服务的情况下将数据从服务器推送到设备,就像推送通知一样。我想推送比通知更大的数据,数据可能是文本、xml、json、.png、.jpg 任何东西。
我试过This Link的推送通知演示
只要有额外的数据添加到服务器,只有这些数据应该从服务器推送到设备并发出通知。当用户点击通知数据从设备显示时,不想在点击通知后通过网络服务器获取数据。
请建议我正在申请中。
所以请建议我应该遵循哪些步骤来完成这项任务。用你宝贵的知识指导我。
【问题讨论】:
【参考方案1】:申请的需要是:
1. I want to push data from server to device without web service, As like push notification. I want to push data which are more in size as compare to the notification and the data may be text, xml, json, .png, .jpg any thing.
2. Whenever there is extra data added to the server, only that data should push from server to device with notification. When user click on the notification data gets display from device, don't want to fetch data after click on the notification with web server.
您可以以有效负载的形式推送数据,因为我们可以将消息从服务器发送到设备。但是我们可以发送的最大数据大小是 4KB。
您只需检查以下代码:
private static void generateNotification(Context context, String message)
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
Notification notification = new Notification(R.drawable.ic_launcher, "Message received", System.currentTimeMillis());
// Hide the notification after its selected
notification.flags |= Notification.FLAG_AUTO_CANCEL;
//adding LED lights to notification
notification.defaults |= Notification.DEFAULT_LIGHTS;
Intent intent = new Intent(context, MessageReceivedActivity.class);
intent.putExtra("payload", payload);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, Intent.FLAG_ACTIVITY_NEW_TASK);
notification.setLatestEventInfo(context, "Message", "New message received", pendingIntent);
notificationManager.notify(0, notification);
希望这会对你有所帮助。
【讨论】:
【参考方案2】:检查此link。
注意:确保使用 GCM 的“服务器密钥”而不是“android 密钥”作为“API 密钥”。
【讨论】:
此链接用于推送通知。但我想通过通知推送数据和图像或文件。 1.您可以从您的第 3 方服务器在请求正文中添加数据。 2.图片可以发送图片链接或者base64格式的图片。注意:GCM 仅支持在通知中发送 4kb 的数据。还要以 JSON 结构发送请求正文。您可以在事件回调“onNotificationGCM”中的“消息”switch-case 标记中访问此数据。接收到的数据为 JSON 格式,您可以通过“e.payload.your_json_data_key”访问它。 您可以使用 chrome 的高级 rest 客户端创建服务器请求,而不是 ruby 脚本。以上是关于Android:推送数据通知的主要内容,如果未能解决你的问题,请参考以下文章
Android Firebase 推送通知包数据问题 [关闭]