Webex Meetings
Integrating the SDK
Whether you need the full SDK for comprehensive features or a size-optimized version for meeting flows only, this article will help you set up the necessary dependencies.
anchorAdd the Maven Repository
anchorMaven repository URL migration: The Android SDK Maven repository URL has changed from
devhub.cisco.comtoarti.anon.devhub-cloud.cisco.com. Update your project-level Gradle configuration before performing a clean build or resolving SDK versions. Changing the repository URL alone does not require changing the SDK dependency. This guide also updates the Full SDK and Meetings SDK examples from version3.16.3to3.17.0. If your organization uses repository allowlists or network proxies, allow the new domain.
The Webex Android SDK is distributed via maven. To integrate the SDK into your app, you need to add the following dependency to your app's build.gradle file:
Add the following repository to your top-level
build.gradlefile:allprojects { repositories { maven { url 'https://arti.anon.devhub-cloud.cisco.com/artifactory/webexsdk/' } } }The Android meetings SDK comes in two variants. If your use case involves only meeting flows, consider using the size-optimized Meeting SDK. If you need features beyond meetings, you will need to use the full SDK.
Add the required
webexsdklibrary as a dependency for your app in thebuild.gradlefile:For the full SDK:
dependencies { implementation 'com.ciscowebex:webexsdk:3.17.0' }For the meetings only SDK:
dependencies { implementation 'com.ciscowebex:webexsdk-meeting:3.17.0' }
anchorAndroid SDK v3.16+ Permission Behavior Changes
anchorFrom Android SDK v3.16 onwards, runtime permission handling is app-owned:
- The SDK does not include dangerous permissions in the library manifest.
- The SDK does not show permission dialogs.
- Your app must declare required permissions and request them at runtime before SDK operations.
- If permissions are missing, SDK APIs return
WebexError.ErrorCode.PERMISSION_REQUIREDand include missing permissions inerror.data.
The SDK also includes support for 16 KB memory page size on Android; no app code change is required for that part.
Common meetings permissions
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
Runtime permission check example
val needed = arrayOf(Manifest.permission.RECORD_AUDIO, Manifest.permission.CAMERA)
// request missing permissions before dial/answer
webex.phone.dial(address, MediaOption.audioVideo(/* views */)) { result ->
// Handle result. If permission is missing, SDK returns PERMISSION_REQUIRED.
}
Screen-sharing consent flow
For screen sharing, obtain MediaProjection user consent and pass the consent data into startSharing(...):
val mgr = ctx.getSystemService(Context.MEDIA_PROJECTION_SERVICE) as MediaProjectionManager
val consentIntent = mgr.createScreenCaptureIntent()
launcher.launch(consentIntent)
// In activity result callback:
call.startSharing(notification, notifId, data /* consent */, callback, shareConfig)