Author Message
ermanbas
Joined: Apr 11, 2016
Messages: 17
Offline
Hi team,
i want to change my state. I wrote this code but it is not working.
Can you help me?
Thanks

The code block that i used :

CSPresenceService *presenceService = [self getPresenceService];



NSLog(@"Presence Options:%ld, Configured:%d", presenceService.selfPresence.supportedOptions, presenceService.serviceConfigured);

if(presenceService && presenceService.serviceAvailable)
{
if(presenceService.selfPresence.overallState != state)
{
presenceService.selfPresence.manualState = state;
[presenceService publishPresence:presenceService.selfPresence];
}
}

Artem.Tsarev
Joined: Jul 13, 2016
Messages: 48
Offline
Hi, ermanbas,

Please find the answer here https://www.devconnectprogram.com/forums/posts/list/21549.page
Also, I would suggest that you always create a new CSPresence object for publishing rather than modifying selfPresence property.
Rumata
Joined: Dec 20, 2016
Messages: 133
Offline
Hi,
Thank you for your question.

You should set following flags before you publish presence.

presence.supportedOptions = CSPresenceOptionManualState | CSPresenceOptionNote | CSPresenceOptionLocationMode;
Mehodesign
Joined: Aug 18, 2017
Messages: 11
Offline
Thanks for quick reply. We can change manual presence state now.

Updated code below for the future reference:
--------------------------------------------------

CSPresenceService *presenceService = [self getPresenceService];

if(presenceService && presenceService.serviceAvailable && presenceService.selfPresence.overallState != state)
{
CSPresence *newPresence = [[CSPresence alloc] init];
newPresence.supportedOptions = CSPresenceOptionManualState;
newPresence.manualState = state;
[presenceService publishPresence:newPresence];
}
Go to:   
Mobile view