Did some tests with GoogleTalk:
When there is no GoogleTalk client running for a user and I set the presence from Smack library, it works perfectly and presence is shown properly on other users roster.
As soon as I start a GoogleTalk client for the user, the state goes to Available and the presence message is as well not visible anymore. When changing states now from Smack, they have no effect on the user.
As soon as I stop the GoogleTalk client again, the states and messages given with Smack appear suddenly again. It looks to me as there are states and messages somehow cached and shown by priority of logged in clients.
Does anybody knwo the rules behind this functionality?
How could I force settings of presence state and text when there is another client logged in for same user?