Release Notes - Android
This page will keep you updated with all the releases of Android SDK.
v2.0.1
Release Date: 28th July 2026
Major release — contains breaking changes. See the Migration Guide.
Change Log:
- New PubSub: Rebuilt for higher throughput and better backpressure handling. Messaging now runs off the main thread, so real-time traffic never blocks your UI.
onBatchReceiveddelivers live messages in batches for high-throughput topics, before the per-messageonMessageReceivedcalls.- Backpressure control through
PubSubSubscribeOptions—realtimeOverflow(QUEUE|DROP),maxQueue,newMessageLimit, andoldMessageLimit. onMessageDropreports how many live messages were lost when the buffer overflows underQUEUE.onOldMessagesReceivedstreams persisted messages in batches, withinfo.isLast()marking the final one.
- When a meeting fails to join during
join()method, the SDK now emits a structured Error event with the corresponding code and message, transitions to theFAILEDstate, and aborts the join.
- Kotlin
- Java
try{
val options = PubSubSubscribeOptions()
options.oldMessageLimit = 50
options.realtimeOverflow = PubSubSubscribeOptions.RealtimeOverflow.QUEUE
options.maxQueue = 100
meeting!!.pubSub.subscribe("CHAT", pubSubMessageListener, options)
} catch (e: Exception) {
Log.d("VideoSDK", "subscribe() Failed: ${e.message}")
}
try{
PubSubSubscribeOptions options = new PubSubSubscribeOptions();
options.setOldMessageLimit(50);
options.setRealtimeOverflow(PubSubSubscribeOptions.RealtimeOverflow.QUEUE);
options.setMaxQueue(100);
meeting.pubSub.subscribe("CHAT", pubSubMessageListener, options);
}catch(Exception e){
Log.d("Videosdk", "subscribe() Failed: " + e.getMessage());
}
Breaking Changes:
onErrorpayload key renamed.typeis nowname. There is no compatibility alias — apps readingerror.getString("type")must switch toerror.getString("name"). Thecodeandmessagekeys are unchanged.- History replay is now batched.
onOldMessagesReceived(messages)was previously called once with the topic's full history. It is now called once per batch with a partial list, so a listener that replaces its message list on each call will drop messages — append instead. A topic with no persisted history no longer fires the callback at all, so it can no longer be used as a "replay finished" signal; overrideonOldMessagesReceived(messages, info)and watchinfo.isLast()for that. - PubSub methods now throw.
publish(),subscribe()andunsubscribe()throwIllegalStateExceptionwhen the meeting is not connected or is reconnecting, instead of failing silently. Guard calls made outside an active meeting — for example anunsubscribe()inonDestroy().
- Kotlin
- Java
override fun onError(error: JSONObject) {
val code = error.optInt("code")
val name = error.optString("name") // was "type" before v2.0.0
val message = error.optString("message")
Log.e("#error", "Error $code ($name): $message")
}
@Override
public void onError(JSONObject error) {
int code = error.optInt("code");
String name = error.optString("name"); // was "type" before v2.0.0
String message = error.optString("message");
Log.e("#error", "Error " + code + " (" + name + "): " + message);
}
Docs: Migration Guide · PubSub · PubSubSubscribeOptions · Error Events
v1.3.0
Release Date: 7th July 2026
Change Log :
- Added support for selectable video codecs in
createCameraVideoTrack(). The codec option supports VP8, VP9, AV1, and H264 throughVideoCodec.
Docs : Codec
v1.2.3
Release Date: 14th June 2026
Improvements:
- Faster room events under PubSub load: PubSub, mode change, entry-request and media-toggle operations now complete asynchronously. Previously these could delay the delivery of other room events while waiting for the server to acknowledge; in PubSub-heavy rooms this is a substantial responsiveness improvement.
Bug Fixes:
- Resolved a rare failure when
changeModewas called concurrently with leaving a meeting. - Disabling the microphone or camera during leaving a meeting is now handled safely.
v1.2.2
Release Date: 22nd May 2026
Bug Fixes:
- Stability of connection-statistics collection: Attaching and detaching statistics probes is now fully tolerant of streams that are started and stopped in quick succession. Statistics collection is best-effort by design, and can no longer affect the meeting itself under any timing condition. Apps that toggle the microphone, camera or screen share rapidly are recommended to move to
1.2.2or later.
v1.2.1
Release Date: 8th May 2026
Change Log :
-
Added
onAgentMetricsevent to receive real-time agent metrics data.Docs: onAgentMetrics
v1.2.0
Change Log :
-
Introduced
AgentParticipant, a dedicated participant type for AI agents within a room. Agents can be identified using theisAgentproperty when they join.Docs: AgentParticipant
-
Added
AgentStateenum (IDLE,LISTENING,THINKING,SPEAKING) to represent the agent lifecycle.Docs: AgentState
-
Added event listeners for agent updates:
-
onAgentStateChangedto track state transitions.Docs: onAgentStateChanged
-
onAgentTranscriptionReceivedto receive real-time transcription.
-
Bug Fixes :
- Rewrote AudioManager logic to resolve Bluetooth issues.
v1.1.10
Release Date : 9th Feb 2026
Bug Fixes :
- Removed the condition that prevented switching when the selected device was already active.
v1.1.9
Release Date : 4th Feb 2026
Bug Fixes :
- Resolved Bluetooth connectivity issue.
v1.1.8
Release Date : 23rd Jan 2026
Bug Fixes :
- Resolved ANR caused by mutex locking in pause/resume methods.
- Resolved ANR caused by blocking thread in stopCapture method.
v1.1.7
Release Date : 20th Jan 2026
Bug Fixes :
- Added thread safety in
VideoViewto prevent ANR.
v1.1.6
Release Date : 17th Jan 2026
Bug Fixes :
- Fixed crash caused by
ConcurrentModificationExceptionwhen listeners were updated simultaneously.
v1.1.5
Release Date : 15th Jan 2026
Bug Fixes :
- Optimized listener handling by removing redundant cleanup.
v1.1.4
Release Date : 14th Jan 2026
Improvements :
- Enhanced trace messaging and flow for better debugging and observability.
- Removed existing listeners when creating a new meeting instance to prevent duplicate registrations.
v1.1.3
Release Date : 19th Dec 2025
Change Log :
- Added
Meeting.FAILEDstate inMeetingStateEvent.
Bug Fixes :
- Ensured latest
micEnabledandcamEnabledstates are restored after reconnecting.
v1.1.2
Release Date : 13th Dec 2025
Change Log :
- Duplicate Participant Event Handling: Added a specific leave reason to distinguish when a participant is disconnected due to a duplicate participantId.
Bug Fixed:
- Fixed Dead Thread in PubSub: Resolved an issue where
pubsubUnsubscribemethod called after the meeting had ended. - Optimized Camera Track Lifecycle: Tracks are now disposed more reliably according to the
MeetingModespecified duringinitMeeting. - Latest Meeting Mode starts after Reconnecting: If the user joins again after reconnecting then the latest meeting mode will start.
v1.1.1
Release Date : 1st Dec 2025
Bux Fixed :
- Pre-call setup bug fixed due to early meeting-left event callback.
- Backward Compatibility added for Kotlin, Gradle, and agp.
v1.1.0
Release Date : 7th Nov 2025
Change Log :
Added Realtime Store functionality– Enables you to store, update, retrieve, and observe custom key-value data within a meeting in real time.
Docs: Realtime Store
v1.0.0
Release Date : 6th Nov 2025
Change Log :
-
Added the
OldMessagesReceivedevent inPubSubMessageListenerto retrieve previously persisted messages. -
Added a reason field with code and message to the
meetingLeftandparticipantLeftevents.
-
Docs: MeetingLeft Event
-
Docs: Participant Left Event
-
Updated internal dependencies.
-
Set the default consumer quality to high and fixed the bug of the
setQualityfeature.
v0.6.0
Release Date : 13th Oct 2025
Change Log :
- This release introduces advanced video track optimization features, enabling greater flexibility and control over quality and bandwidth.
Below are the new parameters added to
createCameraVideoTrack().
-
BitrateMode
- Added the BitrateMode parameter to manage video quality and bandwidth usage easily.
- Developers can now select from three modes based on their requirements:
BANDWIDTH_OPTIMIZEDBALANCED (default)HIGH_QUALITY
- Docs: BitrateMode
-
maxLayer
- Introduced the
maxLayerparameter to allow developers to specify the maximum number of simulcast layers published for a video track. - Docs: MaxLayer
- Introduced the
- Now,
getVideoStats()returns aJsonArray, providing detailed statistics for all produced video layers.
v0.5.1
Release Date : 18th Aug 2025
Change Log :
- In this release, we are introducing a key feature to enhance your experience:
- 16 KB page size support – Added support for 16 KB page size to improve memory efficiency and app performance.
Bug Fixed:
- Resolved the bug with the adaptive subscription event -
onStreamPaused()&onStreamResumed()
v0.5.0
Release Date : 1st Aug 2025
Change Log :
- In this release, we are introducing two key features to enhance your experience:
-
End-to-End Encryption (E2EE) – We have implemented End-to-End Encryption (E2EE) to ensure that all communication within your sessions is securely encrypted. This feature provides enhanced privacy and security for your real-time screen-share, audio and video communications.
-
System Audio Sharing with Screen Share – Introducing system audio sharing with screen share. Previously, you could only share the screen, but now you can also share system audio for a complete and immersive experience.
- Support Added for
Android API Level 35.
Bug Fixed :
- Fixed an issue where the mic would stop working properly when switching from
RECV_ONLYtoSEND_AND_RECVmode.
Docs: End-to-End Encryption (E2EE)
Docs: System Audio Sharing with Screen Share
v0.4.0
Release Date : 17th May 2025
Change Log :
- Introduced two new features to enhance the Interactive Livestream (ILS) experience:
-
Fast Channel Switching – New Fast Channel Switching feature enables instant transitions between live streams with minimal latency.
-
Media Relay Support – Introducing Relay Media, enabling hosts to share their media (audio, video, screen) with other live streams. Perfect for creating engaging "PK battles" and collaborative broadcasts.
Docs: Fast Channel Switching
Docs: Media Relay
v0.3.1
Release Date : 30th April 2025
Bug Fixed :
- Fixed issue where audio and video were not automatically enabled after reconnection.
v0.3.0
Release Date: 1st April 2025
Change Log:
-
New Getter in
MeetingClass:getConnectionState(): Retrieves the current state of the meeting connection.
-
New Methods in
MeetingClass:pauseAllStreams(): Pauses all media streams (audio, video, and screen share) or a specific stream type if provided.resumeAllStreams(): Resumes all paused media streams (audio, video, and screen share) or a specific stream type if provided.
Docs: Meeting Class - Methods
-
New/Updated Event Listeners in
MeetingEventListener:onExternalCallRinging: Triggered when an external call is ringing.onExternalCallStarted: Triggered when an external call is answered.onExternalCallHangup: Triggered when an external call ends.onMeetingStateChanged: Triggered when there is a change in the state of the meeting.onPausedAllStreams: Triggered when media streams is paused.onResumedAllStreams: Triggered when media streams is resumed.
-
Enhanced Meeting Connection Flow:
-
Introduced a RECONNECTING state that activates if the network connection is lost during a meeting. The SDK will automatically attempt to rejoin, improving reliability.
-
Removed the FAILED, CLOSING, and CLOSED states. All disconnection scenarios are now handled under the DISCONNECTED state for a more streamlined experience.
-
v0.2.0
Release Date : 22nd Jan 2025
Change Log :
- Deprecated Modes: Replaced
CONFERENCEwithSEND_AND_RECVandVIEWERwithSIGNALLING_ONLY. - New Mode: Added
RECV_ONLYfor live streaming, allowing participants to receive media only. - Role Switching: Enabled seamless role switching between
SEND_AND_RECV(host) andRECV_ONLY(audience) usingchangeMode()of Meeting Class.
Docs: Quick Start for Interactive Live Streaming
v0.2.0 & v0.3.0
Release Date : 29th June 2022
Change log :
- Updated internal dependency.
Got a Question? Ask us on discord

