Installation
Beta
Requirements
- Android API 26+ (Android 8.0 Oreo)
- Kotlin 1.9+
- Gradle 8.2+
- JDK 17+
Installation
Add the dependency to your app's build.gradle:
dependencies {
implementation("io.github.upscopeio:upscope-android-sdk:2026.4.6")
}
dependencies {
implementation 'io.github.upscopeio:upscope-android-sdk:2026.4.6'
}
Initialization
Initialize the SDK in your Application class:
import io.upscope.sdk.Upscope
import io.upscope.sdk.UpscopeConfiguration
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val config = UpscopeConfiguration.Builder("YOUR_API_KEY")
.build()
Upscope.initialize(this, config)
}
}
The SDK auto-connects by default. To disable this, call .autoConnect(false) on the builder and call Upscope.connect() manually when ready.
The SDK automatically binds to the current activity via lifecycle callbacks. No manual activity binding is needed.
Jetpack Compose Example
import io.upscope.sdk.Upscope
import io.upscope.sdk.UpscopeConfiguration
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val config = UpscopeConfiguration.Builder("YOUR_API_KEY")
.build()
Upscope.initialize(this, config)
}
}
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApp()
}
}
}
Public API Key
You can find your public API key in the installation page of your UserView dashboard.
Required Permissions
The SDK declares these permissions (automatically merged into your manifest):
INTERNET— WebSocket connection to serversACCESS_NETWORK_STATE— Network connectivity checks
No special permissions are required for in-app screen capture.
Full device screen sharing must be enabled in the UserView dashboard and also requires adding two extra permissions to your AndroidManifest.xml. Without them, the SDK automatically disables full device screen sharing. See the full device screen sharing guide for details.
Lookup Code on Shake
By default, shaking the device will display the lookup code in a dialog. This can be disabled via configuration options.
