/**
   * Registers the client for native notifications with the specified tags
   *
   * @param pnsHandle PNS specific identifier
   * @param tags Tags to use in the registration
   * @return The created registration
   * @throws Exception
   */
  public Registration register(String pnsHandle, String... tags) throws Exception {
    if (isNullOrWhiteSpace(pnsHandle)) {
      throw new IllegalArgumentException("pnsHandle");
    }

    Registration registration =
        PnsSpecificRegistrationFactory.getInstance().createNativeRegistration(mNotificationHubPath);
    registration.setPNSHandle(pnsHandle);
    registration.setName(Registration.DEFAULT_REGISTRATION_NAME);
    registration.addTags(tags);

    return registerInternal(registration);
  }