Amazon SNS GCM 推送通知中没有标题
Posted
技术标签:
【中文标题】Amazon SNS GCM 推送通知中没有标题【英文标题】:No title in Amazon SNS GCM push notification 【发布时间】:2016-02-23 10:27:34 【问题描述】:我正在使用 Amazon SNS 控制台发送 android 移动推送通知。我确实收到了推送通知,但只显示正文消息,不显示标题。此外,当触摸通知时,应用程序也没有打开。我正在使用适用于 Unity 的 Amazon AWS 开发工具包。
【问题讨论】:
请提供您的代码。 "GCM": " \"data\": \"message\": \"Hi\", \"title\": \"TestTile\" " in Amazon SNS 控制台 docs.aws.amazon.com/sns/latest/dg/mobile-push-gcm.html 我关注了文档,所以只有我收到推送。另外我使用的是 unity3D 而不是 java eclipse android。但是当点击通知时,应用程序没有打开。 【参考方案1】:如果您共享一些代码会很棒,但据我了解,您希望接收带有标题和正文消息的推送,因此您必须先检索它。
当您在服务中收到推送意图时,您应该调用 intent.getExtras().getString("title")。如果您想在单击推送通知时打开应用程序,您应该在通知 Intent 中进行设置。
下面是一个简单的例子:
@Override
protected void onHandleIntent(Intent intent)
Bundle extras = intent.getExtras();
GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
// The getMessageType() intent parameter must be the intent you received
// in your BroadcastReceiver.
String messageType = gcm.getMessageType(intent);
if (!extras.isEmpty() && messageType != null)
switch (messageType)
case GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR:
Toast.makeText(this, GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR, Toast.LENGTH_SHORT).show();
break;
case GoogleCloudMessaging.MESSAGE_TYPE_DELETED:
Toast.makeText(this, GoogleCloudMessaging.MESSAGE_TYPE_DELETED, Toast.LENGTH_SHORT).show();
break;
case GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE: // retrieve your data here
Log.d("onHandleIntent", "Message= " + extras.getString("message"));
Log.d("onHandleIntent", "Title= " + extras.getString("title"));
sendNotification(extras.getString(message), extras.getString(title));
PushBroadcastReceiver.completeWakefulIntent(intent);
private void sendNotification(String msg, String title)
NotificationManager mNotificationManager = (NotificationManager)
this.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(this, MainActivity.class); // activity wich you want to open when click on push notification
notificationIntent.putExtra(NOTIFICATION_TAG, msg);
notificationIntent.putExtra(NOTIFICATION_TITLE_TAG, title);
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_notifications)
.setContentTitle(title)
.setAutoCancel(true)
.setStyle(new NotificationCompat.BigTextStyle()
.bigText(msg))
.setContentText(msg);
mBuilder.setContentIntent(contentIntent);
mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
【讨论】:
【参考方案2】:正如@Jarik 所说,您必须这样做。
另外假设你面临同样的问题,创建一个 jar 文件,其类扩展 gcm 侦听器或回调使用的任何类(现在不记得名称,打开它们的类文件,你会发现 java 类扩展gcm 接收器),然后使用意图来打开应用程序的通知触摸。这也可以让您使用标题功能。我发现在亚马逊 sns sdk 类文件中不知何故,他们用“”覆盖了标题,因此标题似乎总是空白。
不要忘记将 UnityPlayerProxyActivity 放在 Android 清单中。
【讨论】:
以上是关于Amazon SNS GCM 推送通知中没有标题的主要内容,如果未能解决你的问题,请参考以下文章