我正在使用Amazon SNS控制台发送Android移动推送通知。我确实收到了推送通知,但只显示了正文消息,标题没有显示。当触摸通知时,应用程序没有打开。我正在使用Amazon AWS SDK for Unity。
答案 0 :(得分:3)
如果您共享一些代码会很棒,但据我所知您希望接收带有标题和正文消息的推送,因此您必须先检索它。
当您在服务中收到推送意图时,您应该调用intent.getExtras()。getString(" title")。如果您想在点击推送通知时打开应用程序,则应在通知意图中进行设置。
以下是一个简单的示例:
@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());
}
答案 1 :(得分:0)
正如@Jarik所说,你必须这样做。
另外假设你面临同样的问题,创建一个jar文件,其类扩展了gcm监听器或回调使用的任何类(不记得现在的名字,打开他们的类文件,你会发现扩展的java类) gcm接收器),然后使用意图进行通知触摸,打开应用程序。这也可以让你使用标题功能。我发现在某些亚马逊sns sdk类文件中,他们用""覆盖了标题。因此标题似乎总是空白。
别忘了将UnityPlayerProxyActivity放入Android清单中。