Android/ Call in process remain after leaving the meeting

On Android 13 after leaving a Jitsi meeting the app remains the call open. The status bar shows that the app still accesses the mic, causing problems in other apps or even opening a new meeting. The meeting ends not properly.

Configuration:
val defaultOptions = JitsiMeetConferenceOptions.Builder().setServerURL(serverURL)
.setFeatureFlag(“live-streaming.enabled”, false)
.setFeatureFlag(“participants-pane.enabled”, false)
.setFeatureFlag(“toolbox.enabled”, true).setFeatureFlag(“filmstrip.enabled”, true)
.setFeatureFlag(“invite.enabled”, false).setFeatureFlag(“chat.enabled”, false)
.setFeatureFlag(“pip.enabled”, false).setFeatureFlag(“invite.enabled”, false)
.setFeatureFlag(“add-people.enabled”, false)
.setFeatureFlag(“overflow-menu.enabled”, false)
.setFeatureFlag(“meeting-password.enabled”, false)
.setFeatureFlag(“tile-view.enabled”, true).setFeatureFlag(“help.enabled”, false)
.setFeatureFlag(“video-share.enabled”, true)
.setFeatureFlag(“call-integration.enabled”, false)
.setFeatureFlag(“conference-timer.enabled”, true)
.setFeatureFlag(“meeting-name.enabled”, false)
.setFeatureFlag(“recording.enabled”, false)
.setFeatureFlag(“android.audio-focus.enabled”, true)
.setFeatureFlag(“security-options.enabled”, false)
.setFeatureFlag(“toolbox.alwaysVisible”, false)
.setFeatureFlag(“welcomepage.enabled”, false)
.setFeatureFlag(“call-integration.enabled”, false)
.setFeatureFlag(“lobby-mode.enabled”, false).build()
JitsiMeet.setDefaultConferenceOptions(defaultOptions)

Broadcast Event:
when (event.type) {
BroadcastEvent.Type.CONFERENCE_JOINED → {
Log.i(“JitsiConferenceActivity”, " CONFERENCE_JOINED ${event.data}“)
}
BroadcastEvent.Type.PARTICIPANT_JOINED → {
Log.i(“JitsiConferenceActivity”, " PARTICIPANT_JOINED ${event.data}”)
}
BroadcastEvent.Type.PARTICIPANT_LEFT → {
Log.i(“JitsiConferenceActivity”, " PARTICIPANT_LEFT ${event.data}“)
this.leave()
jitsiMeetView?.dispose()
jitsiMeetView = null
JitsiMeetActivityDelegate.onHostDestroy(this)
}
BroadcastEvent.Type.CONFERENCE_TERMINATED → {
Log.i(“JitsiConferenceActivity”, " CONFERENCE_TERMINATED ${event.data}”)
this.leave()
jitsiMeetView?.dispose()
jitsiMeetView = null
JitsiMeetActivityDelegate.onHostDestroy(this)
}
else → {}
}

I didn’t understand how to end the meeting properly when the participant left the meeting. when the participant left the meeting it shows a black screen on the mobile side.

Don’t use the CONFERENCE_TERMINATED event for tracking meeting ended. Use READY_TO_CLOSE.

You seem to not be using JitsiMeetActivity. Any reason not to do so? It takes of this already.

I’m doing this by extending JitsiMeetActivity()

You don’t need to do anything to handle call termination in that case. JitsiMeetActivity already handles READY_TO_CLOSE and will finish the activity and close Jitsi Meet correctly.

Thanks for the update.

can you share your views on app flow?
I have used the jitsi meet to communicate between two parties. There is a use case when one participant left the meeting Otherside user automatically exits the meeting for this I have monitored the event of PARTICIPANT_LEFT and do dispose of the view of jitsi meet using the following parameters. Please correct me if I doing wrong.

this.leave()
jitsiMeetView?.dispose()
jitsiMeetView = null
JitsiMeetActivityDelegate.onHostDestroy(this)

Please share your views on the above.

Thanks.

Instead of disposing it yourself, send the hang up broadcast action and then READY_TO_CLOSE will fire and it will all work out.

I didn’t get any broadcast action-related things about the call hanging up instead I faced a black screen issue when the participant call ended.

Have you made any changes? You should be hitting this: jitsi-meet/JitsiMeetActivity.java at 9775ad25ca85087fdce0e62e4bd73f47bf33f3ed · jitsi/jitsi-meet · GitHub

Thank you @saghul. I hit ready to close using " intent.action = BroadcastEvent.Type.READY_TO_CLOSE.action". Now it’s work.