SeamSDK
This is the main entry point for the Seam Android SDK.
Use the getInstance function to get the instance of this class. You can only get the instance of the class after you have initialized the SDK by calling initialize.
The initialize function will initialize the SDK.
Thread Safety
All StateFlow properties (credentials, isActivated, unlockStatus) are thread-safe
All suspend functions can be called from any coroutine context
initialize is thread-safe and idempotent
StateFlow Lifecycle
credentials: Emits whenever credential list changes, survives configuration changes
unlockStatus: Emits unlock events, latest event is always available via .value
isActivated: Reflects current SDK activation state
Collecting these flows is lifecycle-safe when used with Android lifecycle-aware scopes
Offline Behavior
SDK caches credentials and can work offline for unlock operations
activate requires internet connection initially
refresh requires internet connection
unlock can work offline if credentials are already cached
Error Recovery
Most operations can be safely retried after fixing underlying issues
Credential errors (in SeamCredential.errors) should be resolved before unlock
Network errors during activate/refresh are transient and can be retried
Background Processing
Unlock operations continue in background
StateFlow emissions work across app lifecycle
Lifecycle
Call initialize once per app session, typically in Application.onCreate()
activate when user wants to use credential features
No explicit cleanup needed - Android handles resource cleanup
deactivate stops background operations but preserves credentials
Properties
Functions
Deactivates the app user's phone.
Lists the credentials for the current app user.
Refreshes the credentials for the current app user.
Sets the listener for the credentials.
Sets the notification for the unlock feature. Required for Assa Abloy foreground scanning.
Sets the listener for the unlock events.