code: public static void sendDataToPebbleWithTransactionId(final Context context,
                                                           final UUID watchappUuid, final PebbleDictionary data, final int transactionId)
              throws IllegalArgumentException {
  
          if (watchappUuid == null) {
              throw new IllegalArgumentException("uuid cannot be null");
          }
  
          if (data == null) {
              throw new IllegalArgumentException("data cannot be null");
          }
  
          if (data.size() == 0) {
              return;
          }
  
          final Intent sendDataIntent = new Intent(INTENT_APP_SEND);
          sendDataIntent.putExtra(APP_UUID, watchappUuid);
          sendDataIntent.putExtra(TRANSACTION_ID, transactionId);
          sendDataIntent.putExtra(MSG_DATA, data.toJsonString());
          context.sendBroadcast(sendDataIntent);
      }
docs: Send one-or-more key-value pairs to the watch-app identified by the provided UUID.
  
  The watch-app and phone-app must agree of the set and type of key-value pairs being exchanged. Type mismatches or
  missing keys will cause errors on the receiver's end.
  
  @param context
  The context used to send the broadcast.
  @param watchappUuid
  A UUID uniquely identifying the target application. UUIDs for the stock kit applications are available in
  {@link Constants}.
  @param data
  A dictionary containing one-or-more key-value pairs. For more information about the types of data that
  can be stored, see {@link PebbleDictionary}.
  @param transactionId
  An integer uniquely identifying the transaction. This can be used to correlate messages sent to the
  Pebble and ACK/NACKs received from the Pebble.
  
  @throws IllegalArgumentException
  Thrown in the specified PebbleDictionary or UUID is invalid.