Skip to content

Gcm-server

Helper library for GCM HTTP server operations.

Sample example

package com.my.ledpowermgr;

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.Map;

import com.google.android.gcm.server.Message;
import com.google.android.gcm.server.Result;
import com.google.android.gcm.server.Sender;

public class GcmManager {

    public static final String DEFAULT_ENCODING = "UTF-8";
    public static final int DEFAULT_TIME_TO_LIVE = 1800;

    public static final int DEFAULT_RETRY_COUNT = 5;

    public static final String PARAMETER_MESSAGE_KEY_NAME = "message";

    /**
     * Send GCM Message.
     * 
     * @param apiKey
     *            GCM API Key.
     * @param token
     *            Device token.
     * @param message
     *            Message key name.
     * @param extra
     *            [Optional] Extra data.
     * @return String type of Message ID.
     */
    public static String send(String apiKey, String token, String message, Map<String, String> extra) {
        Sender sender = new Sender(apiKey);

        try {
            message = URLEncoder.encode(message, DEFAULT_ENCODING);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        Message.Builder messageBuilder = new Message.Builder();
        messageBuilder.delayWhileIdle(false);
        messageBuilder.timeToLive(DEFAULT_TIME_TO_LIVE);
        messageBuilder.addData(PARAMETER_MESSAGE_KEY_NAME, message);

        if (extra != null && extra.size() > 0) {
            Iterator<String> keys = extra.keySet().iterator();
            String key;
            String value;

            while (keys.hasNext()) {
                key = keys.next();
                value = extra.get(key);
                messageBuilder.addData(key, value);
            }
        }

        try {
            Result result = sender.send(messageBuilder.build(), token, DEFAULT_RETRY_COUNT);
            return result.getMessageId();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }

}

See also

Favorite site

References


  1. JAVA_-_GCM_and_APNS.pdf 

  2. Create_Google_Cloud_Messaging_for_Android.pdf