code: public void request(KeyedMessage message,
              VehicleMessage.Listener listener) {
          // Register the listener as non-persistent, so it is deleted after
          // receiving the first response
          mNotifier.register(ExactKeyMatcher.buildExactMatcher(message.getKey()),
                  listener, false);
          send(message);
      }
docs: Send a message to the VehicleInterface and register the given listener to
  receive the first response matching the message's key.
  
  This function is non-blocking.
  
  The listener is unregistered after the first response is received. If you
  need to accept multiple responses for the same request, you must manually
  register your own listener to control its lifecycle.
  
  @param message The desired message to send to the vehicle.
  @param listener The message listener that should receive a callback when
  a response matching the outgoing message's key is received from the
  VI.