當前位置: 首頁>>代碼示例>>Java>>正文


Java Result.getMessageId方法代碼示例

本文整理匯總了Java中com.google.android.gcm.server.Result.getMessageId方法的典型用法代碼示例。如果您正苦於以下問題:Java Result.getMessageId方法的具體用法?Java Result.getMessageId怎麽用?Java Result.getMessageId使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.google.android.gcm.server.Result的用法示例。


在下文中一共展示了Result.getMessageId方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: sendMessage

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
public void sendMessage(List<String> registrationIds, Message message) throws IOException  {
    mLog.info("Sending to " + registrationIds.size() + " clients message " + message);
    for (String registrationId : registrationIds) {
        // sendNoReply otherwise a device switched off will receive the message the same
        Result result = mSender.sendNoRetry(message, registrationId);
        if (result.getMessageId() != null) {
            mLog.info("Message sent to " + registrationId);
            String canonicalRegId = result.getCanonicalRegistrationId();
            if (canonicalRegId != null) {
                // if the regId changed, we have to update the datastore
                mLog.info("Registration Id changed for " + registrationId + " updating to " + canonicalRegId);
                mRegistrationDao.updateRegistrationId(registrationId, canonicalRegId);
            }
        } else {
            String error = result.getErrorCodeName();
            if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
                mLog.warning("Registration Id " + registrationId + " no longer registered with GCM, removing from datastore");
                // if the device is no longer registered with Gcm, remove it from the datastore
                mRegistrationDao.removeByRegistrationId(registrationId);
            } else {
                mLog.warning("Error when sending message : " + error);
            }
        }
    }
}
 
開發者ID:rainbowbreeze,項目名稱:playtogether,代碼行數:26,代碼來源:GcmMessageHelper.java

示例2: sendGcmAlert

import com.google.android.gcm.server.Result; //導入方法依賴的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));
  }
}
 
開發者ID:googlesamples,項目名稱:io2014-codelabs,代碼行數:27,代碼來源:ProspectiveSearchServlet.java

示例3: sendMessage

import com.google.android.gcm.server.Result; //導入方法依賴的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);
            }
        }
    }
}
 
開發者ID:scarrupt,項目名稱:Capstone-Project,代碼行數:42,代碼來源:MessagingEndpoint.java

示例4: sendMessage

import com.google.android.gcm.server.Result; //導入方法依賴的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);
            }
        }
    }
}
 
開發者ID:JimSeker,項目名稱:googleplayAPI,代碼行數:41,代碼來源:MessagingEndpoint.java

示例5: sendGcmMessage

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
@Override
public void sendGcmMessage(UserRecord user, Message message) throws IOException {
    boolean updateUser = false;
    // Use iterator instead of foreach to prevent ConcurrentModificationException
    ListIterator<String> iterator = user.getDevices().listIterator();
    while (iterator.hasNext()) {
        String device = iterator.next();
        Result result = sender.send(message, device, 1);
        if (result.getMessageId() != null) {
            String canonicalRegId = result.getCanonicalRegistrationId();
            if (canonicalRegId != null) {
                // if the regId changed, we have to update it
                iterator.remove();
                iterator.add(canonicalRegId);
                updateUser = true;
            }
        } else {
            String error = result.getErrorCodeName();
            if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
                // if the device is no longer registered with Gcm, remove it
                iterator.remove();
                updateUser = true;
            }
        }
    }
    if (updateUser) {
        userDAO.save(user);
    }
}
 
開發者ID:AndrewJack,項目名稱:moment-for-android-wear,代碼行數:30,代碼來源:MomentGcmHelper.java

示例6: sendMessage

import com.google.android.gcm.server.Result; //導入方法依賴的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);
            }
        }
    }
}
 
開發者ID:tjyu1040,項目名稱:GallyShuttle,代碼行數:41,代碼來源:MessagingEndpoint.java

示例7: send

import com.google.android.gcm.server.Result; //導入方法依賴的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());
    }
}
 
開發者ID:meisteg,項目名稱:RaspberryPiTempAlarm,代碼行數:15,代碼來源:Gcm.java

示例8: sendMessage

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
/**
 * Send to the first 10 devices
 *
 * @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);
            }
        }
    }
}
 
開發者ID:vaektor,項目名稱:Loqale,代碼行數:45,代碼來源:MessagingEndpoint.java

示例9: doSendViaGcm

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
/**
 * Sends the message using the Sender object to the registered device.
 * 
 * @param message
 *            the message to be sent in the GCM ping to the device.
 * @param sender
 *            the Sender object to be used for ping,
 * @param deviceInfo
 *            the registration id of the device.
 * @return Result the result of the ping.
 */
private static Result doSendViaGcm(String message, Sender sender,
		DBObject deviceInfo, DBCollection coll) throws IOException {
	// Trim message if needed.
	if (message.length() > 1000) {
		message = message.substring(0, 1000) + "[...]";
	}

	// This message object is a Google Cloud Messaging object, it is NOT 
	// related to the MessageData class
	Message msg = new Message.Builder().addData("message", message).build();
	Result result = sender.send(msg, (String) deviceInfo.get("_id"),
			5);
	if (result.getMessageId() != null) {
		String canonicalRegId = result.getCanonicalRegistrationId();
		if (canonicalRegId != null) {
			// same device has more than on registration ID: update database
			coll.save(deviceInfo);
		}
	} else {
		String error = result.getErrorCodeName();
		if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
			// application has been removed from device - unregister database
			coll.remove(deviceInfo);
		}
	}

	return result;
}
 
開發者ID:johan12345,項目名稱:vertretungsplan-server,代碼行數:40,代碼來源:ParseThread.java

示例10: sendPushNotification

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
@Override
public void sendPushNotification(BareJID jid, PushRegistrationInfo info) throws IOException {
    if (gcmSender == null) {
        log.log(Level.WARNING, "GCM provider not configured correctly.");
        return;
    }

    String regId = info.getRegistrationId();
    if (regId != null) {
        com.google.android.gcm.server.Message msg = new com.google.android.gcm.server.Message.Builder()
            .collapseKey("new")
            .addData("action", GCM_DATA_ACTION)
            .priority(Message.Priority.HIGH)
            .build();
        Result result = gcmSender.send(msg, regId, GCM_MAX_RETRIES);
        if (result.getMessageId() != null) {
            log.log(Level.FINE, "GCM message sent: {0}", result.getMessageId());
            String newId = result.getCanonicalRegistrationId();
            if (newId != null) {
                // update registration id
                info.setRegistrationId(newId);
            }
        }
        else {
            log.log(Level.INFO, "GCM error: {0}", result.getErrorCodeName());
        }
    }
    else {
        log.log(Level.INFO, "No registration ID found for {0}", jid);
    }
}
 
開發者ID:kontalk,項目名稱:tigase-extension,代碼行數:32,代碼來源:GCMProvider.java

示例11: sendGcmNotification

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
void sendGcmNotification(final PatientEntity p, final String title, final String msg) {
	if (!p.isGcmUser()) {
		throw new IllegalStateException(
				"User is not an Android user. We should never attempt to send a GCM message if we don't have a valid GCM registration id");
	}

	final String regId = p.getProperties().get("c2dmRegistrationId");

	try {
		Sender sender = new Sender(this.gcmAuthKey);
		Message message = new Message.Builder().addData("title", title).addData("message", msg)
				.addData("timestamp", String.valueOf(System.currentTimeMillis())).build();

		Result result = sender.send(message, regId, 5);

		if (result.getMessageId() != null) {
			String canonicalRegId = result.getCanonicalRegistrationId();
			if (canonicalRegId != null) {
				// same device has more than on registration ID: update
				// database
				getLog().debug(
						"Google indicates that the device has more than one registration id. Update to the correct one");
				p.getProperties().put("c2dmRegistrationId", canonicalRegId);
			}
		} else {
			String error = result.getErrorCodeName();

			if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
				// application has been removed from device - unregister
				// database
				getLog().debug(
						"Google indicates that the registration id has been removed from the device. Remove from our database.");
				p.getProperties().remove("c2dmRegistrationId");
			}
		}
	} catch (final IOException e) {
		e.printStackTrace();
		getLog().warn("Could not send push through the GCM network. Error was: " + e.getMessage());
	}
}
 
開發者ID:MinHalsoplan,項目名稱:netcare-healthplan,代碼行數:41,代碼來源:PushNotificationServiceImpl.java

示例12: push

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
public final void push(String registrationId, String apiKey,
		Map<String, Object> args, boolean delayWhileIdle)
		throws IOException {
	Sender sender = new Sender(apiKey);
	Message.Builder builder = new Message.Builder();
	builder.timeToLive(60 * 60).collapseKey("MAGIC_STRING")
			.delayWhileIdle(delayWhileIdle);
	for (String key : args.keySet()) {
		builder.addData(key, "" + args.get(key));
	}
	Message message = builder.build();
	Result result = sender.send(message, registrationId, 5);
	if (result.getMessageId() != null) {
		String canonicalRegId = result.getCanonicalRegistrationId();
		if (canonicalRegId != null) {
			// same device has more than on registration ID: update database
			System.out
					.println("same device has more than on registration ID: update database");
		} else {
			System.out.println("ok");
		}
	} else {
		String error = result.getErrorCodeName();
		if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
			// application has been removed from device - unregister
			// database
			System.out
					.println("application has been removed from device - unregister database");
		}
		System.out.println("ok 2: " + error);
	}
}
 
開發者ID:interdroid,項目名稱:cuckoo-library,代碼行數:33,代碼來源:RemoteMonitorThread.java

示例13: sendSingleMessage

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
private void sendSingleMessage(String regId, HttpServletResponse resp) {
  logger.info("Sending message to device " + regId);
  Message message = createMessage();
  Result result;
  try {
    result = sender.sendNoRetry(message, regId);
  } catch (IOException e) {
    logger.log(Level.SEVERE, "Exception posting " + message, e);
    taskDone(resp);
    return;
  }
  if (result == null) {
    retryTask(resp);
    return;
  }
  if (result.getMessageId() != null) {
    logger.info("Succesfully sent message to device " + regId);
    String canonicalRegId = result.getCanonicalRegistrationId();
    if (canonicalRegId != null) {
      // same device has more than on registration id: update it
      logger.finest("canonicalRegId " + canonicalRegId);
      Datastore.updateRegistration(regId, canonicalRegId);
    }
  } else {
    String error = result.getErrorCodeName();
    if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
      // application has been removed from device - unregister it
      Datastore.unregister(regId);
    } else {
      logger.severe("Error sending message to device " + regId
          + ": " + error);
    }
  }
}
 
開發者ID:army-of-dumbledore,項目名稱:pennappsF13,代碼行數:35,代碼來源:SendMessageServlet.java

示例14: doSendViaGcm

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
private static Result doSendViaGcm(String message, Sender sender,
                                   DeviceInfo deviceInfo) throws IOException {
    // Trim message if needed.
    if (message.length() > 1000) {
        message = message.substring(0, 1000) + "[...]";
    }

    // This message object is a Google Cloud Messaging object, it is NOT
    // related to the MessageData class
    Message msg = new Message.Builder().addData("message", message).build();
    Result result = sender.send(msg, deviceInfo.getDeviceRegistrationID(),
            5);
    if (result.getMessageId() != null) {
        String canonicalRegId = result.getCanonicalRegistrationId();
        if (canonicalRegId != null) {
            endpoint.removeDeviceInfo(deviceInfo.getDeviceRegistrationID());
            deviceInfo.setDeviceRegistrationID(canonicalRegId);
            endpoint.insertDeviceInfo(null, deviceInfo);
        }
    } else {
        String error = result.getErrorCodeName();
        if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
            endpoint.removeDeviceInfo(deviceInfo.getDeviceRegistrationID());
        }
    }

    return result;
}
 
開發者ID:gabuzomeu,項目名稱:geoPingProject,代碼行數:29,代碼來源:StopWatchStateEndpoint.java

示例15: doSendViaGcm

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
/**
 * Sends the message using the Sender object to the registered device.
 *
 * @param message    the message to be sent in the GCM ping to the device.
 * @param sender     the Sender object to be used for ping,
 * @param deviceInfo the registration id of the device.
 * @return Result the result of the ping.
 */
private static Result doSendViaGcm(String message, Sender sender,
                                   DeviceInfo deviceInfo) throws IOException {
    // Trim message if needed.
    if (message.length() > 1000) {
        message = message.substring(0, 1000) + "[...]";
    }

    // This message object is a Google Cloud Messaging object, it is NOT 
    // related to the MessageData class
    Message msg = new Message.Builder().addData("message", message).build();
    Result result = sender.send(msg, deviceInfo.getDeviceRegistrationID(),
            5);
    if (result.getMessageId() != null) {
        String canonicalRegId = result.getCanonicalRegistrationId();
        if (canonicalRegId != null) {
            endpoint.removeDeviceInfo(deviceInfo.getDeviceRegistrationID());
            deviceInfo.setDeviceRegistrationID(canonicalRegId);
            endpoint.insertDeviceInfo(null, deviceInfo);
        }
    } else {
        String error = result.getErrorCodeName();
        if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
            endpoint.removeDeviceInfo(deviceInfo.getDeviceRegistrationID());
        }
    }

    return result;
}
 
開發者ID:gabuzomeu,項目名稱:geoPingProject,代碼行數:37,代碼來源:MessageEndpoint.java


注:本文中的com.google.android.gcm.server.Result.getMessageId方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。