Android GCM自行创建通知

时间:2015-07-23 00:07:23

标签: android google-cloud-messaging android-notifications

我设置了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());
    }

}

一切都有帮助。

2 个答案:

答案 0 :(得分:2)

来自文档

  

消息有效负载是可选的。如果要在消息中包含有效内容,请使用data参数包含自定义键/值   对。客户端应用程序处理显示或其他的数据有效负载   加工目的。

     

带有预定义选项的通知参数表示GCM   将在客户端应用程序中代表客户端应用程序显示消息   在Android上实现GCMListenerService ,或者在通知时实现   消息被发送到iOS设备。应用服务器可以发送消息   包括通知和数据有效负载。在这种情况下,GCM   处理显示通知有效负载和客户端应用程序句柄   数据有效负载。有关更多信息和示例,请参阅

换句话说,如果您向自己的有效负载发送notification代码,GCM会为您的应用创建通知

https://developers.google.com/cloud-messaging/server

答案 1 :(得分:0)

Android中通知的自定义布局,如果这是您的意思:Create custom notification, android