Welcome to Jiomeet Video KYC Template UI, a SDK that streamlines the integration of Jiomeet's powerful audio and video functionalities into your Android application with minimal coding effort. With just a few simple steps, you can enable high-quality real-time communication, allowing users to effortlessly connect, collaborate, and communicate.
- Introduction
- Features
- Prerequisites
- Setup
- Configure JioMeet Template UI Inside Your App
- Sample App
- Troubleshooting
In this documentation, we'll guide you through the process of installation, enabling you to enhance your Android app with Jiomeet's real-time communication capabilities swiftly and efficiently.Let's get started on your journey to creating seamless communication experiences with Jiomeet Video KYC Template UI!
Before you begin, ensure you have met the following requirements:
JioMeet Template UI relies on Jetpack Compose for its user interface components. Ensure that your Android project is configured to use Jetpack Compose. You can add the necessary configurations to your project's build.gradle file:
// Enable Jetpack Compose
buildFeatures {
compose true
}
// Set the Kotlin compiler extension version for Compose
composeOptions {
kotlinCompilerExtensionVersion = "1.3.2"
}
You need to first register on Jiomeet platform.Click here to sign up
Create a new app. Please follow the steps provided in the Documentation guide to create apps before you proceed.
Use the create meeting api to get your room id and password
i. Step 1 : Generate a Personal Access Token for GitHub
- Settings -> Developer Settings -> Personal Access Tokens -> Generate new token
- Make sure you select the following scopes (“ read:packages”) and Generate a token
- After Generating make sure to copy your new personal access token. You cannot see it again! The only option is to generate a new key.
ii. Update build.gradle inside the application module
repositories {
maven {
credentials {
<!--github user name-->
username = ""
<!--github user token-->
password = ""
}
url = uri("https://maven.pkg.github.com/JioMeet/JioMeetVideoKYCSDK_Android")
}
google()
mavenCentral()
}
iii. In Gradle Scripts/build.gradle (Module: ) add the Template UI dependency. The dependencies section should look like the following:
dependencies {
...
implementation "com.jiomeet.platform:jiomeetkyctemplatesdk:<version>"
...
}
Find the Latest version of the UI Kit and replace with the one you want to use. For example: 2.1.8.
In /app/Manifests/AndroidManifest.xml, add the following permissions after :
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- The SDK requires Bluetooth permissions in case users are using Bluetooth devices. -->
<uses-permission android:name="android.permission.BLUETOOTH" />
<!-- For Android 12 and above devices, the following permission is also required. -->
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
it's crucial to request some permissions like CAMERA ,RECORD_AUDIO, READ_PHONE_STATE at runtime since these are critical device access permissins to ensure a seamless and secure user experience. Follow these steps
- Check Permissions
if (checkPermissions()) {
// Proceed with using the features.
} else {
// Request critical permissions at runtime.
}
- Request Runtime Permissions:
private void requestCriticalPermissions() {
ActivityCompat.requestPermissions(this,
new String[]{
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
},
PERMISSION_REQUEST_CODE);
}
- Handle Permission Results
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
if (requestCode == PERMISSION_REQUEST_CODE) {
if (areAllPermissionsGranted(grantResults)) {
// Proceed with using the features that require critical permissions.
} else {
// Handle denied permissions, especially for camera and phone state, which are essential.
}
}
}
Initialize modules by calling
CoreApplication().recreateModules(this)
Set the environment to PROD
BaseUrl.initializedNetworkInformation(this, Constant.Environment.PROD)
Update onCreate to run LaunchKYCCore() when the app starts. The updated code should like the provided code sample:
private val jmJoinMeetingConfig =
JMJoinMeetingConfig(
userRole = Speaker,
isInitialAudioOn = true,
isInitialVideoOn = true,
isShareScreen = false,
isShareWhiteBoard = false
)
private val jioMeetConnectionListener =
object : JioMeetConnectionListener {
override fun onLeaveMeeting() {
finish()
}
}
val jmJoinMeetingData =
JMJoinMeetingData(
meetingId = "",
meetingPin = "",
displayName = "",
version = "",
deviceId = "deviceId"
)
// You can select any KYC option from the following that can be passed to LaunchKYCCore.
<!--enum class KycOptions(val value: String) {-->
<!-- CALL("Call"),-->
<!-- FACE_UI("Face UI"),-->
<!-- CARD_UI("Card UI")-->
<!--}-->
LaunchKYCCore(
jioMeetConnectionListener = jioMeetConnectionListener,
jmJoinMeetingConfig = jmJoinMeetingConfig,
jmJoinMeetingData = jmJoinMeetingData,
kycOption = kycOption.value, // KYC value KycOptions.CALL or KycOptions.FACE_UI or KycOptions.CARD_UI
switchCameraState = switchCameraClicked.value, // Camera click state TRUE/FALSE
captureImageClick = captureImageClicked.value, // Capture image click state TRUE/FALSE
onCaptureImage = { imagePath ->
println("Captured Image Path $imagePath") // Captured image PATH
},
leaveMeeting = leaveMeetingClicked.value // Leave meeting click state TRUE/FALSE
)
Visit our Jiomeet KYC Template UI Sample app repo to run the sample app.
- Facing any issues while integrating or installing the JioMeet Template UI Kit please connect with us via real time support present in [email protected] or https://jiomeetpro.jio.com/contact-us