When connecting a client to a device I cannot change a device's metric before MetricListener.changedMetric() is called. That means I have to subscribe a MetricListener to change a metric.
The problem is that it could take a few seconds until the MetricListener is called after finding a device.
I don't know whether this is a bug or not. I just want to clarify if this works as expected.
That is correct. It is required that you subscribe to an OperationInvocationReport before you change something. Actually, you just have to subscribe to the metric and should not have to wait for the callback.