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


Java Result.getCanonicalRegistrationId方法代碼示例

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


在下文中一共展示了Result.getCanonicalRegistrationId方法的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: 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

示例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:JimSeker,項目名稱:googleplayAPI,代碼行數:41,代碼來源:MessagingEndpoint.java

示例4: 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

示例5: 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

示例6: 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

示例7: 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

示例8: 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

示例9: 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

示例10: 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

示例11: 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

示例12: 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

示例13: 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

示例14: sendMessage

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
/**
 * Sends a message to Android devices.
 *
 * @param devices the list of devices that the notification is sent to.
 * @param message the message to be sent.
 * @param playerKey the key of the player that the notification is sent to.
 * @throws IOException if there was IOException thrown by Google Cloud Messaging for Android.
 */
protected void sendMessage(List<DeviceEntity> devices, Message message, Key playerKey)
    throws IOException {
  List<String> androidDeviceIds = new ArrayList<String>();
  for (DeviceEntity device : devices) {
    androidDeviceIds.add(device.getDeviceId());
  }

  Sender messageSender = new Sender(Configuration.CLOUD_MESSAGING_API_KEY);
  MulticastResult messageResults =
      messageSender.send(message, androidDeviceIds, NUMBER_OF_RETRIES);

  if (messageResults != null) {
    DeviceService deviceService = new DeviceService();

    for (int i = 0; i < messageResults.getTotal(); i++) {
      Result result = messageResults.getResults().get(i);

      if (result.getMessageId() != null) {
        String canonicalRegId = result.getCanonicalRegistrationId();
        if (canonicalRegId != null) {
          deviceService.updateDeviceRegistration(devices.get(i), canonicalRegId);
        }
      } else {
        String error = result.getErrorCodeName();
        if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
          // The user has uninstalled the application or turned off notifications.
          // Remove the device from Griddler.
          deviceService.unregisterDevice(playerKey, devices.get(i).getKey());
        } else {
          logger.log(Level.INFO, "Error when sending Android push notification: " + error);
        }
      }
    }
  }
}
 
開發者ID:GoogleCloudPlatform,項目名稱:solutions-griddler-sample-backend-java,代碼行數:44,代碼來源:AndroidNotificationService.java

示例15: push

import com.google.android.gcm.server.Result; //導入方法依賴的package包/類
@Override
@ApiMethod(path = "pushToGcm")
public void push(@Named("subscribeId") String subscribeId,
    @Named("messageType") String messageType, @Named("message") String message) {
  Sender sender = new Sender(API_KEY);
  Message msg = new Message.Builder().addData(messageType, message).timeToLive(0).build();
  Result result = null;
  try {
    result = sender.sendNoRetry(msg, subscribeId);
  } catch (IOException e) {
    log.log(Level.SEVERE, "Error when send message to Google Cloud Messaging Service", e);
    return;
  }
  if (result.getMessageId() != null) {
    String canonicalRegId = result.getCanonicalRegistrationId();
    if (canonicalRegId != null) {
      DeviceInfo deviceInfo = endpoint.getDeviceInfo(subscribeId);
      endpoint.removeDeviceInfo(subscribeId);
      deviceInfo.setId(canonicalRegId);
      endpoint.insertDeviceInfo(deviceInfo);
    }
  } else {
    String error = result.getErrorCodeName();
    if (error.equals(Constants.ERROR_NOT_REGISTERED)) {
      endpoint.removeDeviceInfo(subscribeId);
    }
  }
}
 
開發者ID:larrytin,項目名稱:realtime-server-appengine,代碼行數:29,代碼來源:GoogleCloudMessaging.java


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