我设置了GCM,它运行正常。我从服务器收到通知,然后显示给客户端。问题是,GCM创建了自己的通知,不会让我自定义。我遵循了这个指南:https://github.com/codepath/android_guides/wiki/Google-Cloud-Messaging。
这是我的服务代码:
public class GcmMessageHandler extends GcmListenerService {
public static final int MESSAGE_NOTIFICATION_ID = 435345;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onMessageReceived(String from, Bundle data) {
String message = data.getString("message");
createNotification(from, message);
}
private void createNotification(String title, String body) {
NotificationCompat.Builder mBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle(title)
.setContentText(body)
.setAutoCancel(true);
Intent resultIntent = new Intent(this, RouteActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(RouteActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
mBuilder.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(MESSAGE_NOTIFICATION_ID, mBuilder.build());
}
}
一切都有帮助。
答案 0 :(得分:2)
来自文档
消息有效负载是可选的。如果要在消息中包含有效内容,请使用data参数包含自定义键/值 对。客户端应用程序处理显示或其他的数据有效负载 加工目的。
带有预定义选项的通知参数表示GCM 将在客户端应用程序中代表客户端应用程序显示消息 在Android上实现GCMListenerService ,或者在通知时实现 消息被发送到iOS设备。应用服务器可以发送消息 包括通知和数据有效负载。在这种情况下,GCM 处理显示通知有效负载和客户端应用程序句柄 数据有效负载。有关更多信息和示例,请参阅
换句话说,如果您向自己的有效负载发送notification
代码,GCM会为您的应用创建通知
答案 1 :(得分:0)
Android中通知的自定义布局,如果这是您的意思:Create custom notification, android