This guide explains how to work with Live Activities using our SDK, from retrieving active activities to managing push tokens.
Get Active Live Activities
To retrieve a list of currently active Live Activities associated with the device:
var la = new IndigitallLiveActivity();
la.GetListLiveActivities(
onSuccess: liveActivities =>
{
Console.WriteLine("List of enabled live activities:");
foreach (var item in liveActivities)
{
Console.WriteLine($"ID: {item.LiveActivityId}, ChannelId: {item.iOSChannelId}");
}
},
onError: (code, message) =>
{
Console.WriteLine($"Error fetching live activities [{code}]: {message}");
}
);
Register Device Information
Send the list of Live Activities the device is subscribed to so the backend can associate them with the device for push updates:
LiveActivity[] liveActivitiesToRegister = ...;
la.SubscribeToLiveActivities(
liveActivitiesToRegister,
onSuccess: () =>
{
Console.WriteLine("Successfully registered live activities with device");
},
onError: (code, message) =>
{
Console.WriteLine($"Failed to register live activities [{code}]: {message}");
}
);
Request and Register Push Token (PushToStart)
To receive push notifications for Live Activities, you need to listen for token updates and register them.
This example uses a custom TimerWidgetAttributes type:
string token = "..."; //
string iosAttributesType = "TimerWidgetAttributes";
la.SetPushToStartTokenUpdates(
token,
iosAttributesType,
onSuccess: () =>
{
Console.WriteLine("PushToStart token sent successfully");
},
onError: (code, message) =>
{
Console.WriteLine($"Error sending PushToStart token [{code}]: {message}");
}
);
This token should be sent to your backend notification server so it can target the correct Live Activity.
Monitor Token Updates (Advanced – Rarely Needed)
In most cases, tokens won't change during the activity's lifecycle. However, you can monitor token updates with:
string updatedToken = "...";
string liveActivityExternalId = "YOUR_LIVE_ACTIVITY_EXTERNAL_ID";
la.SetPushTokenUpdates(
updatedToken,
liveActivityExternalId,
onSuccess: () =>
{
Console.WriteLine("Token update sent successfully");
},
onError: (code, message) =>
{
Console.WriteLine($"Error updating token [{code}]: {message}");
}
);
Typically, this isn’t necessary if you’re sending push notifications via a known channelId, since tokens are expected to remain stable.