code: public static void customizeWatchApp(final Context context, final PebbleAppType appType,
                                           final String name, final Bitmap icon) throws IllegalArgumentException {
  
          if (appType == null) {
              throw new IllegalArgumentException("app type cannot be null");
          }
  
          if (name.length() > NAME_MAX_LENGTH) {
              throw new IllegalArgumentException(String.format(
                      "app name exceeds maximum length (%d)", NAME_MAX_LENGTH));
          }
  
          if (icon.getHeight() > ICON_MAX_DIMENSIONS || icon.getWidth() > ICON_MAX_DIMENSIONS) {
              throw new IllegalArgumentException(String.format(
                      "app icon exceeds maximum dimensions (25px x 25px); got (%dpx x %dpx)",
                      icon.getWidth(), icon.getHeight()));
          }
  
          final Intent customizeAppIntent = new Intent(INTENT_APP_CUSTOMIZE);
          customizeAppIntent.putExtra(CUST_APP_TYPE, appType.ord);
          customizeAppIntent.putExtra(CUST_NAME, name);
          customizeAppIntent.putExtra(CUST_ICON, icon);
          context.sendBroadcast(customizeAppIntent);
      }
docs: Send a message to the connected Pebble to "customize" a built-in PebbleKit watch-app. This is intended to allow
  third-party Android applications to apply custom branding (both name and icon) on the watch without needing to
  distribute a complete watch-app.
  
  @param context
  The context used to send the broadcast. (Protip: pass in the ApplicationContext here.)
  @param appType
  The watch-app to be configured. Options are either
  @param name
  The custom name to be applied to the watch-app. Names must be less than 32 characters in length.
  @param icon
  The custom icon to be applied to the watch-app. Icons must be black-and-white bitmaps no larger than 32px
  in either dimension.
  
  @throws IllegalArgumentException
  Thrown if the specified name or icon are invalid. {@link PebbleAppType#SPORTS} or {@link
  PebbleAppType#GOLF}.