本文整理匯總了Java中com.google.android.gcm.server.Sender類的典型用法代碼示例。如果您正苦於以下問題:Java Sender類的具體用法?Java Sender怎麽用?Java Sender使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
Sender類屬於com.google.android.gcm.server包,在下文中一共展示了Sender類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: sendNotifications
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
public Result sendNotifications(String msg, String listUser) {
Result result = null;
String[] users = listUser.split(",");
try {
for (int i = 0; i < users.length; i++) {
String deviceId = userDAO.getDeviceId(users[i]);
Sender sender = new Sender(GOOGLE_SERVER_KEY);
Message message = new Message.Builder().timeToLive(120)
.delayWhileIdle(false).addData(MESSAGE_KEY, msg).build();
System.out.println("User: " + users[i] + " - regId: " + deviceId);
result = sender.send(message, deviceId, 1);
}
return result;
} catch (IOException ioe) {
ioe.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
示例2: sendNotification
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
public void sendNotification(String msg, String deviceId) {
System.out.println("Start send notification" + deviceId);
Result result = null;
try {
Sender sender = new Sender(GOOGLE_SERVER_KEY);
Message message = new Message.Builder().timeToLive(120)
.delayWhileIdle(false).addData(MESSAGE_KEY, msg).build();
result = sender.send(message, deviceId, 1);
System.out.println("Send Notification Success: " + result.toString());
System.out.println("RegID: " + deviceId);
System.out.println("End send notification");
} catch (IOException ioe) {
ioe.printStackTrace();
System.out.println("Error when send notification " + ioe.toString());
} catch (Exception e) {
e.printStackTrace();
System.out.println("Error when send notification " + e.toString());
}
}
示例3: sendNotification
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
@POST
@Path("/sendNotification/user/{account}")
public String sendNotification(@HeaderParam("Authorization") String token, String text,
@PathParam("account") String account,
@DefaultValue("application/json") @HeaderParam("Content-Type") String contentType,
@DefaultValue("application/json") @HeaderParam("Accept") String accept) {
if (!validCredentials(token))
return serialise(getInvalidCredentialsBean(), accept);
// (new ApplePushNotificationDelegator(token)).sendNotification(account, text);
Sender sender = new Sender("AIzaSyBBHzixGmnJnu8YhZS44zCObl85JTspo_Q");
Message message = new Message.Builder().addData("runId", "1234").build();
try {
Result result = sender.send(message, "APA91bFDiScakJJnxA9LfFNknB965TdghV5ep7w5ZGwOG51JJF_X3MBy3_set6mPPaYRK_ceWcK00JF9x6vW-vuDGB4dYqgevukafBYq8VgovwG8dyLK4QtbT123N_8_hmACIJ185JztOBvVLb-8AlDLJPG_I3gldQ", 5);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "sent";
}
示例4: sendGCMNotificationAsJson
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
public void sendGCMNotificationAsJson(String account, String registrationId, HashMap<String, Object> valueMap, String packageIdentifier) {
if (packageIdentifier == null || "".equals(packageIdentifier)) return;
// log.log(Level.WARNING, "gcm key " + ConfigurationManager.getValue(GCM_KEY+packageIdentifier));
// log.log(Level.WARNING, "packageIdentifier " + packageIdentifier);
// log.log(Level.WARNING, "regId " + registrationId);
Sender sender = new Sender(ConfigurationManager.getValue(GCM_KEY+packageIdentifier));
Message.Builder builder = new Message.Builder();
for (Map.Entry<String, Object> entry : valueMap.entrySet()) {
builder.addData(entry.getKey(), "" + entry.getValue());
}
Message message = builder.build();
try {
Result result = sender.send(message, registrationId, 5);
log.log(Level.WARNING, "sent " + message.toString());
log.log(Level.WARNING, "result " + result);
} catch (IOException e) {
log.log(Level.SEVERE, "errr", e);
e.printStackTrace();
}
}
示例5: sendGcmAlert
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
private void sendGcmAlert(String subId, String regId)
throws IOException {
String gcmKey = backendConfigManager.getGcmKey();
boolean isGcmKeySet = !(gcmKey == null || gcmKey.trim().length() == 0);
// Only attempt to send GCM if GcmKey is available
if (isGcmKeySet) {
Sender sender = new Sender(gcmKey);
Message message = new Message.Builder().addData(SubscriptionUtility.GCM_KEY_SUBID, subId)
.build();
Result r = sender.send(message, regId, GCM_SEND_RETRIES);
if (r.getMessageId() != null) {
log.info("ProspectiveSearchServlet: GCM sent: subId: " + subId);
} else {
log.warning("ProspectiveSearchServlet: GCM error for subId: " + subId +
", senderId: " + gcmKey + ", error: " + r.getErrorCodeName());
ArrayList<String> deviceIds = new ArrayList<String>();
deviceIds.add(regId);
SubscriptionUtility.clearSubscriptionAndDeviceEntity(deviceIds);
}
} else {
// Otherwise, just write a log entry
log.info(String.format("ProspectiveSearchServlet: GCM is not sent: GcmKey: %s ",
isGcmKeySet));
}
}
示例6: insertStopWatchState
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
/**
* This inserts a new entity into App Engine datastore. If the entity already
* exists in the datastore, an exception is thrown.
* It uses HTTP POST method.
*
* @param stopWatchState the entity to be inserted.
* @return The inserted entity.
*/
@ApiMethod(name = "insertStopWatchState")
public StopWatchState insertStopWatchState(StopWatchState stopWatchState) {
EntityManager mgr = getEntityManager();
try {
if (containsStopWatchState(stopWatchState)) {
throw new EntityExistsException("Object already exists");
}
mgr.persist(stopWatchState);
// Send to GCM
Sender sender = new Sender(API_KEY);
} finally {
mgr.close();
}
return stopWatchState;
}
示例7: sendMessage
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
/**
* This accepts a message and persists it in the AppEngine datastore, it
* will also broadcast the message to upto 10 registered android devices
* via Google Cloud Messaging
*
* @param message the entity to be inserted.
* @return
* @throws java.io.IOException
*/
@ApiMethod(name = "sendMessage")
public void sendMessage(@Named("message") String message)
throws IOException, OAuthRequestException {
// OAUTH https://developers.google.com/appengine/docs/java/endpoints/auth
Sender sender = new Sender(API_KEY);
// create a MessageData entity with a timestamp of when it was
// received, and persist it
MessageData messageObj = new MessageData();
messageObj.setMessage(message);
messageObj.setTimestamp(System.currentTimeMillis());
EntityManager mgr = getEntityManager();
try {
mgr.persist(messageObj);
} finally {
mgr.close();
}
// ping a max of 10 registered devices
CollectionResponse<DeviceInfo> response = endpoint.listDeviceInfo(null,
10);
for (DeviceInfo deviceInfo : response.getItems()) {
doSendViaGcm(message, sender, deviceInfo);
}
}
示例8: sendMessage
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
/**
* This accepts a message and persists it in the AppEngine datastore, it
* will also broadcast the message to upto 10 registered android devices
* via Google Cloud Messaging
*
* @param message
* the entity to be inserted.
* @return
* @throws IOException
*/
@ApiMethod(name = "sendMessage")
public void sendMessage(@Named("message") String message)
throws IOException {
Sender sender = new Sender(API_KEY);
// create a MessageData entity with a timestamp of when it was
// received, and persist it
MessageData messageObj = new MessageData();
messageObj.setMessage(message);
messageObj.setTimestamp(System.currentTimeMillis());
EntityManager mgr = getEntityManager();
try {
mgr.persist(messageObj);
} finally {
mgr.close();
}
// ping a max of 10 registered devices
CollectionResponse<DeviceInfo> response = endpoint.listDeviceInfo(null,
10);
for (DeviceInfo deviceInfo : response.getItems()) {
doSendViaGcm(message, sender, deviceInfo);
}
}
開發者ID:googlearchive,項目名稱:solutions-mobile-shopping-assistant-backend-java,代碼行數:33,代碼來源:MessageEndpoint.java
示例9: requestSubscription
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
public static void requestSubscription(long id, String subUsername, String pubGcmToken) throws IOException {
Sender sender = new Sender(API_KEY);
Message msg = new Message.Builder()
.addData(MESSAGE_TYPE, SUBSCRIPTION_REQUEST)
.addData(SUBSCRIBER_ID, id + "")
.addData(SUBSCRIBER_USERNAME, subUsername)
.build();
Result result = sender.send(msg, pubGcmToken, 1);
System.out.println(msg.toString());
System.out.println(result.toString());
}
示例10: notifyAlert
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
public static void notifyAlert(MobileClient publisher, GlucoseAlert alert,
List<String> subGcmTokens) throws IOException {
Sender sender = new Sender(API_KEY);
Message msg = new Message.Builder()
.addData(MESSAGE_TYPE, ALERT_NOTIFICATION)
.addData(PUBLISHER_ID, publisher.getId() + "")
.addData(PUBLISHER_USERNAME, publisher.getUsername())
.addData(ALERT_TYPE, alert.getType().toString())
.addData(ALERT_TIMESTAMP, alert.getTimestamp() + "")
.build();
MulticastResult result = sender.sendNoRetry(msg, subGcmTokens);
System.out.println(msg.toString());
System.out.println(result.toString());
}
示例11: sendMessage
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
/**
* Send to the first 10 devices (You can modify this to send to any number of devices or a specific device)
*
* @param message The message to send
*/
public void sendMessage(@Named("message") String message) throws IOException {
if(message == null || message.trim().length() == 0) {
log.warning("Not sending message because it is empty");
return;
}
// crop longer messages
if (message.length() > 1000) {
message = message.substring(0, 1000) + "[...]";
}
Sender sender = new Sender(API_KEY);
Message msg = new Message.Builder().addData("message", message).build();
List<RegistrationRecord> records = ofy().load().type(RegistrationRecord.class).limit(10).list();
for(RegistrationRecord record : records) {
Result result = sender.send(msg, record.getRegId(), 5);
if (result.getMessageId() != null) {
log.info("Message sent to " + record.getRegId());
String canonicalRegId = result.getCanonicalRegistrationId();
if (canonicalRegId != null) {
// if the regId changed, we have to update the datastore
log.info("Registration Id changed for " + record.getRegId() + " updating to " + canonicalRegId);
record.setRegId(canonicalRegId);
ofy().save().entity(record).now();
}
} else {
String error = result.getErrorCodeName();
if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
log.warning("Registration Id " + record.getRegId() + " no longer registered with GCM, removing from datastore");
// if the device is no longer registered with Gcm, remove it from the datastore
ofy().delete().entity(record).now();
}
else {
log.warning("Error when sending message : " + error);
}
}
}
}
示例12: run
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
public void run() {
Sender sender = new Sender(SENDER_ID);
Message message = new Message.Builder()
// If multiple messages are sent while device is offline,
// only receive the latest message is received.
.collapseKey(COLLAPSE_KEY + "_" + p.getId())
// TTL = 6 hours (if scheduled at 9h, push is received until
// 15h)
.timeToLive(21600).delayWhileIdle(true).addData("title", p.getTitle())
.addData("numberOfRestaurants", restaurantsForPushCount.toString())
.addData("longitude", String.valueOf(p.getLongitude()))
.addData("latitude", String.valueOf(p.getLatitude())).addData("radius", String.valueOf(p.getRadius()))
.addData("kitchenTypeIds", pushKitchenTypeIds.toString()).addData("pushId", String.valueOf(p.getId()))
.build();
try {
Result result = sender.send(message, p.getGcmToken(), NUMBER_OF_RETRIES);
if (result.getErrorCodeName() == null) {
LOGGER.info(
LogUtils.getDefaultSchedulerMessage(Thread.currentThread().getStackTrace()[1].getMethodName(),
"GCM Notification was sent successfully: " + message.toString()));
} else if (result.getErrorCodeName().equals("InvalidRegistration")) {
pushRepo.delete(p);
LOGGER.error(LogUtils.getErrorMessage(Thread.currentThread().getStackTrace()[1].getMethodName(),
"GCM Token invalid: Push-Notification is deleted."));
} else {
LOGGER.error(LogUtils.getErrorMessage(Thread.currentThread().getStackTrace()[1].getMethodName(),
"Error occurred while sending push notification :" + result.getErrorCodeName()));
}
} catch (Exception e) {
LOGGER.error(LogUtils.getExceptionMessage(Thread.currentThread().getStackTrace()[1].getMethodName(), e));
}
return;
}
示例13: sendMessage
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
/**
* Send to the first 10 devices (You can modify this to send to any number of devices or a specific device)
*
* @param message The message to send
*/
public void sendMessage(@Named("message") String message) throws IOException {
if (message == null || message.trim().length() == 0) {
log.warning("Not sending message because it is empty");
return;
}
// crop longer messages
if (message.length() > 1000) {
message = message.substring(0, 1000) + "[...]";
}
Sender sender = new Sender(API_KEY);
Message msg = new Message.Builder().addData("message", message).build();
List<RegistrationRecord> records = ofy().load().type(RegistrationRecord.class).limit(10).list();
for (RegistrationRecord record : records) {
Result result = sender.send(msg, record.getRegId(), 5);
if (result.getMessageId() != null) {
log.info("Message sent to " + record.getRegId());
String canonicalRegId = result.getCanonicalRegistrationId();
if (canonicalRegId != null) {
// if the regId changed, we have to update the datastore
log.info("Registration Id changed for " + record.getRegId() + " updating to " + canonicalRegId);
record.setRegId(canonicalRegId);
ofy().save().entity(record).now();
}
} else {
String error = result.getErrorCodeName();
if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
log.warning("Registration Id " + record.getRegId() + " no longer registered with GCM, removing from datastore");
// if the device is no longer registered with Gcm, remove it from the datastore
ofy().delete().entity(record).now();
} else {
log.warning("Error when sending message : " + error);
}
}
}
}
示例14: sendMessage
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
/**
* Send to the first 10 devices (You can modify this to send to any number of devices or a specific device)
*
* @param message The message to send
*/
public void sendMessage(@Named("message") String message) throws IOException {
if (message == null || message.trim().length() == 0) {
log.warning("Not sending message because it is empty");
return;
}
// crop longer messages
if (message.length() > 1000) {
message = message.substring(0, 1000) + "[...]";
}
Sender sender = new Sender(API_KEY);
Message msg = new Message.Builder().addData("message", message).build();
List<RegistrationRecord> records = ofy().load().type(RegistrationRecord.class).limit(10).list();
for (RegistrationRecord record : records) {
Result result = sender.send(msg, record.getToken(), 5);
if (result.getMessageId() != null) {
log.info("Message sent to " + record.getToken());
String canonicalRegId = result.getCanonicalRegistrationId();
if (canonicalRegId != null) {
// if the regId changed, we have to update the datastore
log.info("Registration Id changed for " + record.getToken() + " updating to " + canonicalRegId);
record.setToken(canonicalRegId);
ofy().save().entity(record).now();
}
} else {
String error = result.getErrorCodeName();
if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
log.warning("Registration Id " + record.getToken() + " no longer registered with GCM, removing from datastore");
// if the device is no longer registered with Gcm, remove it from the datastore
ofy().delete().entity(record).now();
} else {
log.warning("Error when sending message : " + error);
}
}
}
}
示例15: send
import com.google.android.gcm.server.Sender; //導入依賴的package包/類
private static void send(final String topic) throws IOException {
final Sender sender = new Sender(getApiKey());
final Message msg = new Message.Builder()
.collapseKey(COLLAPSE_KEY_ALARM)
.priority(Message.Priority.HIGH)
.timeToLive(TTL_SECONDS)
.build();
final Result result = sender.send(msg, topic, NUM_RETRIES);
if (result.getMessageId() != null) {
log.fine("Message sent to " + topic);
} else {
log.warning("Error when sending message: " + result.getErrorCodeName());
}
}