The Jitsi Meet Android SDK provides the same user experience as the Jitsi Meet app,in a customizable way which you can embed in your apps.
Android 6.0 or higher is required.
If you want to see how easy integrating the Jitsi Meet SDK into a native application is, take a look at thesample applications repository.
Jitsi conveniently provides a pre-build SDK artifacts/binaries in its Maven repository. When you do not require anymodification to the SDK itself or any of its dependencies, it's suggested to use the pre-build SDK. This avoids thecomplexity of building and installing your own SDK artifacts/binaries.
In your project, add the Maven repositoryhttps://github.com/jitsi/jitsi-maven-repository/raw/master/releases and thedependency org.jitsi.react:jitsi-meet-sdk into your build.gradle files.
The repository typically goes into the build.gradle file in the root of your project:
Dependency definitions belong in the individual module build.gradle files:
Show building instructions
Start by making sure that your development environment is set up correctly.
A note on dependencies: Apart from the SDK, Jitsi also publishes a binary Maven artifact for some of the SDK dependencies (that are not otherwise publicly available) to the Jitsi Maven repository. When you're planning to use a SDK that is built from source, you'll likely use a version of the source code that is newer (or at least different) than the version of the source that was used to create the binary SDK artifact. As a consequence, the dependencies that your project will need, might also be different from those that are published in the Jitsi Maven repository. This might lead to build problems, caused by dependencies that are unavailable.
If you want to use a SDK that is built from source, you will likely benefit from composing a local Maven repository that contains these dependencies. The text below describes how you create a repository that includes both the SDK as well as these dependencies. For illustration purposes, we'll define the location of this local Maven repository as /tmp/repo
In source code form, the Android SDK dependencies are locked/pinned by package.json and package-lock.json of the Jitsi Meet project. To obtain the data, execute NPM in the jitsi-meet project directory:
This will pull in the dependencies in either binary format, or in source code format, somewhere under /node_modules/
Third-party React Native modules, which Jitsi Meet SDK for Android depends on, are download by NPM in source codeor binary form. These need to be assembled into Maven artifacts, and then published to your local Maven repository.A script is provided to facilitate this. From the root of the jitsi-meet project repository, run:
This will build and publish the SDK, and all of its dependencies to the specified Maven repository (/tmp/repo) inthis example.
You're now ready to use the artifacts. In your project, add the Maven repository that you used above (/tmp/repo) into your top-level build.gradle file:
You can use your local repository to replace the Jitsi repository (maven { url "https://github.com/jitsi/jitsi-maven-repository/raw/master/releases" }) when you published all subprojects. If you didn't do that, you'll have to add both repositories. Make sure your local repository is listed first!
Then, define the dependency org.jitsi.react:jitsi-meet-sdk into the build.gradle file of your module:
Note that there should not be a need to explicitly add the other dependencies, as they will be pulled in as transitivedependencies of jitsi-meet-sdk.
Jitsi Meet SDK is an Android library which embodies the whole Jitsi Meetexperience and makes it reusable by third-party apps.
First, add Java 1.8 compatibility support to your project by adding thefollowing lines into your build.gradle file:
To get started, extends your android.app.Activity fromorg.jitsi.meet.sdk.JitsiMeetActivity:
Alternatively, you can use the org.jitsi.meet.sdk.JitsiMeetView class whichextends android.view.View.
Note that this should only be needed when JitsiMeetActivity cannot be used forsome reason. Extending JitsiMeetView requires manual wiring of the view tothe activity, using a lot of boilerplate code. Using the Activity instead of theView is strongly recommended.
Show example
This class encapsulates a high level API in the form of an Android FragmentActivitywhich displays a single JitsiMeetView. You can pass a URL as a ACTION_VIEWon the Intent when starting it and it will join the conference, and will beautomatically terminated (finish() will be called on the activity) when theconference ends or fails.
The JitsiMeetView class is the core of Jitsi Meet SDK. It's designed todisplay a Jitsi Meet conference (or a welcome page).
Joins the conference specified by the given JitsiMeetConferenceOptions.
Leaves the currently active conference. If the welcome page is enabled it willgo back to it, otherwise a black window will be shown.
Releases all resources associated with this view. This method MUST be calledwhen the Activity holding this view is going to be destroyed, usually in theonDestroy() method.
Returns the JitsiMeetViewListener instance attached to the view.
Sets the given listener (class implementing the JitsiMeetViewListenerinterface) on the view.
This object encapsulates all the options that can be tweaked when joininga conference.
Example:
See the JitsiMeetConferenceOptions implementation for all available options.
This class handles the interaction between JitsiMeetView and its enclosingActivity. Generally this shouldn't be consumed by users, because they'd beusing JitsiMeetActivity instead, which is already completely integrated.
All its methods are static.
Helper method to handle results of auxiliary activities launched by the SDK.Should be called from the activity method of the same name.
Helper method which should be called from the activity's onBackPressed method.If this function returns true, it means the action was handled and thus noextra processing is required; otherwise the app should call the parent'sonBackPressed method.
Helper method which should be called from the activity's onDestroy method.
Helper method which should be called from the activity's onResume or onStopmethod.
Helper method which should be called from the activity's onSstop method.
Helper method for integrating the deep linking functionality. If your app'sactivity is launched in "singleTask" mode this method should be called from theactivity's onNewIntent method.
Helper method to handle permission requests inside the SDK. It should be calledfrom the activity method of the same name.
Helper method for integrating automatic Picture-in-Picture. It should be calledfrom the activity's onUserLeaveHint method.
This is a static method.
JitsiMeetViewListener provides an interface apps can implement to listen tothe state of the Jitsi Meet conference displayed in a JitsiMeetView.
Called when a conference was joined.
The data Map contains a "url" key with the conference URL.
Called when a conference was terminated either by user choice or due to afailure.
The data Map contains an "error" key with the error and a "url" keywith the conference URL. If the conference finished gracefully no errorkey will be present.
Called before a conference is joined.
The data Map contains a "url" key with the conference URL.
The SDK broadcasts several events that the users can listen for.
Please see JitsiMeetActivity, which registers for all the events and can serve as an example.
Broadcasted when a conference was joined.The data HashMap contains a url key with the conference URL.
Broadcasted when the active conference ends, be it because of user choice orbecause of a failure.The data HashMap contains an error key with the error and a url keywith the conference URL. If the conference finished gracefully no errorkey will be present.
Broadcasted before a conference is joined.The data HashMap contains a url key with the conference URL.
Broadcasted when audioMuted state changed.The data HashMap contains a muted key with state of the audioMuted for the localParticipant.
Broadcasted when videoMuted state changed.The data HashMap contains a muted key with state of the videoMuted for the localParticipant.
Broadcasted when a participant has joined the conference.The data HashMap contains information of the participant that has joined.Depending of whether the participant is the local one or not, some of them arepresent/missing.isLocalemailnameparticipantId
Broadcasted when a participant has joined the conference.The data HashMap contains information of the participant that has left.Depending of whether the participant is the local one or not, some of them arepresent/missing.isLocalemailnameparticipantId
Broadcasted when an endpoint text message is received.The data HashMap contains a senderId key with the participantId of the sender and a message key with the content.
Broadcasted when a RETRIEVE_PARTICIPANTS_INFO action is called.The data HashMap contains a participantsInfo key with a list of participants information and a requestId key with the id that was sent in the RETRIEVE_PARTICIPANTS_INFO action.
Broadcasted when a chat text message is received.The data HashMap contains a senderId key with the participantId of the sender, a message key with the content, a isPrivate key with a boolean value and a timestamp key.
Broadcasted when the chat dialog is opened or closed.The data HashMap contains a isOpen key with a boolean value.
The SDK listens for broadcasted actions from the users and reacts accordingly.
The intents can be build manually (as shown above) or through the methods in BroadcastIntentHelper.
Please see JitsiMeetOngoingConferenceService for more examples of sending actions.
Sets the state of the localParticipant audio muted according to the muted parameter.Expects a muted key on the intent extra with a boolean value.
Sets the state of the localParticipant video muted according to the muted parameter.Expects a muted key on the intent extra with a boolean value.
The localParticipant leaves the current conference.Does not expect any extra value.
Sends a messaage via the data channel to one particular participant or to all of them.Expects a to key on the intent extra with the id of the participant to which the messaageis meant and a message key with a string value, the actual content of the message.If the to key is not present or it's value is empty, the message will be sentto all the participants in the conference.
In order to get the participantId, the PARTICIPANT_JOINED event should be listened for,which data includes the id and this should be stored somehow.
Sets the state of the localParticipant screen share according to the enabled parameter.Expects a enabled key on the intent extra with a boolean value.
Signals the SDK to retrieve a list with the participants information. The SDK will emit a PARTICIPANTS_INFO_RETRIEVED event.Expects a requestId key on the intent extra with a string value, this parameter will be present on the PARTICIPANTS_INFO_RETRIEVED event.
Opens the chat dialog. If a to key is present with a valid participantId, the private chat for that particular participant will be opened.
Closes the chat dialog.Does not expect any extra value.
Sends a chat message, either a private one if a to key is present with a valid participantId and to everybody otherwise.Expects a message key with a string value.
When using the SDK on a project some proguard rules have to be added in orderto avoid necessary code being stripped. Add the following to your project'srules file: https://github.com/jitsi/jitsi-meet/blob/master/android/app/proguard-rules.pro
JitsiMeetView will automatically adjust its UI when presented in aPicture-in-Picture style scenario, in a rectangle too small to accommodate its"full" UI.
To setup the Dropbox integration, follow these steps:
View original post here:
Android SDK Jitsi Meet Handbook
- How to Deploy Jitsi Meet with Docker on Ubuntu 20.04 - March 31st, 2023 [March 31st, 2023]
- Jitsi Meet review | TechRadar - February 18th, 2023 [February 18th, 2023]
- Zoom vs Jitsi for video conferencing? | ONLYOFFICE Blog - February 18th, 2023 [February 18th, 2023]
- IFrame API | Jitsi Meet - GitHub Pages - November 25th, 2022 [November 25th, 2022]
- Self-Hosting Guide - Debian/Ubuntu server | Jitsi Meet - October 17th, 2022 [October 17th, 2022]
- Best Video Calling Apps: Zoom, Skype, Hangouts, Jitsi And More On Test - Which? - Which? - October 11th, 2022 [October 11th, 2022]
- When is it a good idea to turn off the camera during a video call - Aviation Analysis Wing - March 18th, 2022 [March 18th, 2022]
- Rwanda: Wave of Free Speech Prosecutions - Human Rights Watch - March 18th, 2022 [March 18th, 2022]
- 8x8 Video Conferencing API | 8x8 - February 19th, 2022 [February 19th, 2022]
- Video-as-a-Service Market is Expected to Generate Huge Profits by 2021 2026 Bulk Solids Handling - Bulk Solids Handling - October 3rd, 2021 [October 3rd, 2021]
- Brave is taking the video conferencing fight to Zoom - Techradar - September 27th, 2021 [September 27th, 2021]
- Braves non-tracking, browser-based video conferencing tool is out of beta - TechCrunch - September 24th, 2021 [September 24th, 2021]
- Brave Talk, a new private video conferencing service tied to the web browser - InTallaght - September 24th, 2021 [September 24th, 2021]
- Brave gets a video call service integrated with the browser and leaves no traces The Clare People - The Clare People - September 24th, 2021 [September 24th, 2021]
- How To Install Jitsi Meet on Ubuntu 18.04 | DigitalOcean - August 2nd, 2021 [August 2nd, 2021]
- Zoom launches Zoom Apps and Zoom Events 'to empower the hybrid workforce' - iTWire - July 25th, 2021 [July 25th, 2021]
- Google Meets limiting free group calls to an hour what are your options? - The Next Web - July 14th, 2021 [July 14th, 2021]
- Its Official: We ODd on the Internet - OneZero - OneZero - June 13th, 2021 [June 13th, 2021]
- Is it the same as google duo? Explica .co - Explica - June 13th, 2021 [June 13th, 2021]
- Tips on Cybersecurity for Students and Teachers - Al-Fanar Media - June 4th, 2021 [June 4th, 2021]
- What is Jitsi Meet and how does it work the best free open source alternative to Zoom and Google Meet | Technology Explica .co - Explica - May 14th, 2021 [May 14th, 2021]
- Choose Your Own Adventure in the Virtual World - Observatory of Educational Innovation - April 19th, 2021 [April 19th, 2021]
- How Artists Used the Discord App to Build Community During COVID-19 - Hyperallergic - March 31st, 2021 [March 31st, 2021]
- How to Self Host Jitsi Meet With Docker [Step by Step Guide] - March 11th, 2021 [March 11th, 2021]
- Protesting in the Age of Mass Surveillance - EFF - March 11th, 2021 [March 11th, 2021]
- Jitsi | Quick Install | Advance Configuraton | Some Fixes - March 7th, 2021 [March 7th, 2021]
- Market trends and outlook coupled with factors driving and restraining the growth of the Web Conferencing market Jumbo News - Jumbo News - February 16th, 2021 [February 16th, 2021]
- Jenny Turner Ready to Go Off LRB 18 February 2021 - London Review of Books - February 16th, 2021 [February 16th, 2021]
- Want a goat to stand in for you on Zoom? Itll cost you around R102 for 5 minutes - SowetanLIVE - February 8th, 2021 [February 8th, 2021]
- Keeping mindfulness and employee health at the forefront: app reviews - Tech Wire Asia - February 8th, 2021 [February 8th, 2021]
- Inside job: Why Zoombombing isnt as random as you might think - Digital Trends - February 8th, 2021 [February 8th, 2021]
- Tech Trends 2021: All You Need To Know - CCM - January 17th, 2021 [January 17th, 2021]
- Comprehensive Report on Web Conferencing Market 2021 | Trends, Growth Demand, Opportunities & Forecast To 2027 |IBM, ReadyTalk, Adobe, ezTalks,... - January 9th, 2021 [January 9th, 2021]
- Jitsi Meet: Open Source Zoom Alternative - December 19th, 2020 [December 19th, 2020]
- Jitsi Meet - Download - December 19th, 2020 [December 19th, 2020]
- How to Install Jitsi Meet on CentOS 8 - RoseHosting - December 19th, 2020 [December 19th, 2020]
- New 8x8 CEO expected to improve business operations - TechTarget - December 19th, 2020 [December 19th, 2020]
- Is HelmChat Free Helmet Comm Solution A Good Alternative? - RideApart - September 18th, 2020 [September 18th, 2020]
- How to recreate water cooler moments in the virtual workplace - Quartz - August 13th, 2020 [August 13th, 2020]
- Our right to health and the COVID-19 pandemic - Davao Today - June 13th, 2020 [June 13th, 2020]
- A look at how Jitsi became a 'secure' open-source alternative to Zoom - The Next Web - May 24th, 2020 [May 24th, 2020]
- How the Covid-19 Lockdown Is Reshaping Uighur Activism - The Nation - May 24th, 2020 [May 24th, 2020]
- TikTok now gives you one-tap access to streaming app Resso - The Next Web - May 24th, 2020 [May 24th, 2020]
- Tips on Running a Remote Animation Studio - Animation World Network - May 24th, 2020 [May 24th, 2020]
- Adapting from Home: This Weeks View of Video Meeting Triumphs and Concerns - Yahoo Finance - March 31st, 2020 [March 31st, 2020]
- 8 Best Zoom Alternatives for Video Conferencing and Webinars - Beebom - March 31st, 2020 [March 31st, 2020]
- Jitsi Downloads - iOS & Android apps; Jitsi Meet, & Jitsi ... - March 26th, 2020 [March 26th, 2020]
- What Is the Most Secure Video Conferencing Software? - VICE - March 26th, 2020 [March 26th, 2020]
- Home schooling tips: The things I wish I'd known before the schools went into lockdown - Telegraph.co.uk - March 26th, 2020 [March 26th, 2020]
- Fox Sports 1 Utilized Video Call Center to Extend Reach of Shows Like The Herd with Colin Cowherd - Sports Video Group - December 22nd, 2019 [December 22nd, 2019]
- Fox Sports 1 Dials Up VCC for The Herd With Colin Cowherd - TV Technology - December 22nd, 2019 [December 22nd, 2019]
- Gladstone gold does club proud - Gladstone Observer - July 19th, 2017 [July 19th, 2017]
- Jitsi | Futurist Transhuman News Blog - euvolution.com - July 10th, 2017 [July 10th, 2017]
- FAQ | Jitsi | Prometheism.net euvolution.com | Futurist ... - July 5th, 2017 [July 5th, 2017]
- FAQ | Jitsi | Futurist Transhuman News Blog - June 29th, 2017 [June 29th, 2017]
- Tsirang vegetable vendors commit to selling local chillies - Kuensel, Buhutan's National Newspaper - June 27th, 2017 [June 27th, 2017]
- FAQ | Jitsi | Prometheism.net - euvolution.com - June 26th, 2017 [June 26th, 2017]
- FAQ | Jitsi - June 25th, 2017 [June 25th, 2017]
- Jitsi - PediaView.com - June 14th, 2017 [June 14th, 2017]
- How to Configure and Set-Up Jitsi - Liberty Under Attack - June 6th, 2017 [June 6th, 2017]
- Jitsi Meet (advanced) Projects - May 23rd, 2017 [May 23rd, 2017]
- Diaspora* and Other Free Software Are Available in the Occitan Language, Thanks to Volunteer Translators - Global Voices Online - May 23rd, 2017 [May 23rd, 2017]
- Online privacy guide for journalists - Radioinfo (subscription) - May 18th, 2017 [May 18th, 2017]
- Your Essential List of 7 Productivity Hacks and Time Management Tips - Business 2 Community - May 11th, 2017 [May 11th, 2017]
- Encrypted Chat Took Over. Let's Encrypt Calls, Too - Huffington Post - April 25th, 2017 [April 25th, 2017]
- 5 Apps You Didn't Know You Needed - Syracuse University News - April 3rd, 2017 [April 3rd, 2017]
- Jitsi Meet - Android Apps on Google Play - March 9th, 2017 [March 9th, 2017]
- Snowden helping develop tools to protect journalists and whistleblowers - 'to make the game a little more fair' - Press Gazette - February 15th, 2017 [February 15th, 2017]
- Edward Snowden's New Job: Protecting Reporters From Spies - WIRED - February 14th, 2017 [February 14th, 2017]
- Jitsi for Windows - Secure Instant Messaging and VoIP - February 11th, 2017 [February 11th, 2017]
- Jitsi for Mac - Download - jitsi.en.softonic.com - February 6th, 2017 [February 6th, 2017]
- Jitsi softphone for Windows OnSIP Support - November 23rd, 2016 [November 23rd, 2016]
- Trying to install jitsi meet with apache2 - Stack Overflow - October 29th, 2016 [October 29th, 2016]
- Jitsi - Wikipedia - October 27th, 2016 [October 27th, 2016]
- Jitsi - Mensajera instantnea segura de texto, audio y ... - August 10th, 2016 [August 10th, 2016]
- Jitsi - Quora - May 31st, 2016 [May 31st, 2016]
- Chocolatey Gallery | Jitsi 2.8.5426 - May 28th, 2016 [May 28th, 2016]
- Jitsi - - May 24th, 2016 [May 24th, 2016]
- Jitsi - FreeBSD Wiki - May 22nd, 2016 [May 22nd, 2016]
- Jitsi - OSTN - Guardian Project Open Dev - May 21st, 2016 [May 21st, 2016]