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
- com.google.android.gcm.server package reference
- Java로 GCM, APNS 사용하기 1
- 안드로이드 GCM(Google Cloud Messaging for Android) 만들기 2