Skip to main content

Configuration — Overview (7.x Beta)

7.x Beta

APIs, defaults, and option names may still change before the 7.0 stable release.

This page is the canonical reference for every core SDK option recognised by the 7.x Android SDK. Options from extension modules live on their own pages — see NDK options and Leak options.

Two configuration channels

Every Bugsee SDK option can be set in two equivalent ways. The literal string key is identical in both — no prefix conversion. The two channels are mutually exclusive rather than merged: passing a Map<String, Object> to Bugsee.launch(...) programmatically short-circuits the manifest auto-init path entirely, and any option absent from the map falls back to its registered default — not to the manifest value. If you mix channels, treat the manifest as your defaults and the programmatic map as a full override.

  • AndroidManifest.xml <meta-data> entries — recommended when you use the SDK's auto-init path (app token in the manifest, no programmatic launch call). Under <application>:
    <meta-data android:name="com.bugsee.option.<group>.<name>"
    android:value="..." />
  • Map<String, Object> passed to Bugsee.launch(...) — required when you want runtime / per-flavor control. Keys come from the Options interface; values are typed (boolean / int / float / String / enum):
    HashMap<String, Object> options = new HashMap<>();
    options.put(Options.SomeKey, value);
    Bugsee.launch(this, "<APP_TOKEN>", options);
The LaunchOptions class was removed in 7.x

All configuration in 7.x flows through either the manifest or the Map<String, Object> passed to launch(). See the 6.x → 7.x migration guide for details.

General

Options constantManifest keyTypeDefault
Durationcom.bugsee.option.config.durationint (seconds)60
WifiOnlyUploadcom.bugsee.option.config.wifi-only-uploadbooleanfalse
ReportProcessingInProcesscom.bugsee.option.config.report-processing-in-processbooleantrue
ReportHandlerCallbackTimeoutcom.bugsee.option.config.report-handler-callback-timeoutint (seconds)30

Duration caps the cyclical capture buffer (video, logs, breadcrumbs) at the given number of seconds. WifiOnlyUpload defers report uploads until Wi-Fi. ReportProcessingInProcess = false routes report processing through JobScheduler so it survives process death (at the cost of upload latency). ReportHandlerCallbackTimeout = 0 disables the timeout — but it doesn't apply to crash sequences.

<meta-data android:name="com.bugsee.option.config.duration"
android:value="60" />
<meta-data android:name="com.bugsee.option.config.wifi-only-upload"
android:value="true" />

Detection

The full set of detection options is documented on each detector's own page in Issue detection. The table below is the option reference.

Options constantManifest keyTypeDefault
DetectAndReportCrashcom.bugsee.option.detect.crashbooleantrue
DetectAndReportEarlyCrashcom.bugsee.option.detect.early-crashbooleanfalse
DetectAndReportHangcom.bugsee.option.detect.hangbooleanfalse
DetectAndReportHangFairLevelcom.bugsee.option.detect.hang.level.fairint (ms)3000
DetectAndReportHangMediumLevelcom.bugsee.option.detect.hang.level.mediumint (ms)5000
DetectAndReportHangSevereLevelcom.bugsee.option.detect.hang.level.severeint (ms)10000
DetectAndReportMainThreadMisusecom.bugsee.option.detect.main_thread_misusebooleanfalse
DetectAndReportAnomalycom.bugsee.option.detect.anomalybooleanfalse
DetectAndReportHttpErrorscom.bugsee.option.detect.http-errorsbooleanfalse
DetectFrustrationcom.bugsee.option.detect.frustrationbooleanfalse
DetectAndReportExitcom.bugsee.option.detect.exitbooleantrue
DetectAndReportExitLowMemorycom.bugsee.option.detect.exit.low_memorybooleantrue
DetectAndReportExitNotRespondingcom.bugsee.option.detect.exit.not_respondingbooleantrue
DetectAndReportExitExcessiveResourceUsagecom.bugsee.option.detect.exit.excessive_resource_usagebooleanfalse
DetectAndReportExitDependencyDiedcom.bugsee.option.detect.exit.dependency_diedbooleanfalse
DetectAndReportExitUserRequestedcom.bugsee.option.detect.exit.user_requestedbooleanfalse
DetectAndReportExitUserWasStoppedcom.bugsee.option.detect.exit.user_was_stoppedbooleanfalse
DetectAndReportExitPermissionChangedcom.bugsee.option.detect.exit.permission_changedbooleanfalse
DetectAndReportExitPackageUpdatedcom.bugsee.option.detect.exit.package_updatedbooleanfalse
DetectAndReportExitPackageStateChangedcom.bugsee.option.detect.exit.package_state_changedbooleanfalse
DetectAndReportExitOthercom.bugsee.option.detect.exit.otherbooleanfalse
DetectAndReportExitUnknowncom.bugsee.option.detect.exit.unknownbooleanfalse
<meta-data android:name="com.bugsee.option.detect.hang"
android:value="true" />
<meta-data android:name="com.bugsee.option.detect.exit"
android:value="true" />

Capture

Options constantManifest keyTypeDefault
CaptureLogscom.bugsee.option.capture.logsbooleantrue
CaptureLogsLevelcom.bugsee.option.capture.logs.levelLogLevelVerbose
CaptureLogsUseAllSourcescom.bugsee.option.capture.logs.allsourcesbooleanfalse
CaptureScreenshotcom.bugsee.option.capture.screenshotbooleantrue
CaptureScreenshotScalecom.bugsee.option.capture.screenshot.scalefloat [0.05, 1.0]1.0
CaptureNetworkcom.bugsee.option.capture.networkbooleantrue
CaptureNetworkBodySizeLimitcom.bugsee.option.capture.network.body-size-limitint (bytes)20480
CaptureNetworkBodyWithoutTypecom.bugsee.option.capture.network.body-without-typebooleanfalse
CaptureNetworkUseDefaultSanitizercom.bugsee.option.capture.network.default-sanitizerbooleantrue
CaptureViewHierarchycom.bugsee.option.capture.view-hierarchybooleantrue
CaptureBreadcrumbscom.bugsee.option.capture.breadcrumbsbooleanfalse
CaptureBreadcrumbsExtrascom.bugsee.option.capture.breadcrumbs.extrasbooleanfalse
CaptureVideocom.bugsee.option.capture.videobooleantrue
CaptureVideoModecom.bugsee.option.capture.video.modeVideoModeV2
CaptureVideoQualitycom.bugsee.option.capture.video.qualityVideoQualityDefault
CaptureVideoFrameRatecom.bugsee.option.capture.video.frame-rateFrameRateHigh
CaptureVideoScalecom.bugsee.option.capture.video.scalefloat [0.1, 1.0]1.0
CaptureVideoSecureScrollingcom.bugsee.option.capture.video.secure-scrollingbooleanfalse
CaptureVideoUsingCustomMuxercom.bugsee.option.capture.video.custom-muxerbooleanfalse
CaptureVideoFullscreenRememberUserDecisioncom.bugsee.option.capture.video.fullscreen-remember-decisionbooleantrue
CaptureVideoFullscreenKeepRunningcom.bugsee.option.capture.video.fullscreen-keep-runningbooleantrue

For video modes and redaction details see Privacy → Video.

<meta-data android:name="com.bugsee.option.capture.video.frame-rate"
android:value="Medium" />
<meta-data android:name="com.bugsee.option.capture.network.body-size-limit"
android:value="10240" />

Reporting triggers

Options constantManifest keyTypeDefault
ReportingTriggerByShakecom.bugsee.option.reporting.triggers.shakebooleantrue
ReportingTriggerByScreenshotcom.bugsee.option.reporting.triggers.screenshotbooleanfalse
ReportingTriggerByNotificationcom.bugsee.option.reporting.triggers.notification-barbooleantrue
ReportingTriggerByBroadcastcom.bugsee.option.reporting.triggers.broadcastbooleanfalse
<meta-data android:name="com.bugsee.option.reporting.triggers.shake"
android:value="false" />

Reporting defaults

Options constantManifest keyTypeDefault
ReportingDefaultCrashPrioritycom.bugsee.option.reporting.defaults.crash-priorityIssueSeverityBlocker
ReportingDefaultErrorPrioritycom.bugsee.option.reporting.defaults.error-priorityIssueSeverityHigh
ReportingDefaultBugPrioritycom.bugsee.option.reporting.defaults.bug-priorityIssueSeverityHigh

Reporting UI

Options constantManifest keyTypeDefault
ReportingUISummaryRequiredcom.bugsee.option.reporting.ui.summary-requiredbooleanfalse
ReportingUIDescriptionRequiredcom.bugsee.option.reporting.ui.description-requiredbooleanfalse
ReportingUIEmailRequiredcom.bugsee.option.reporting.ui.email-requiredbooleanfalse
ReportingUILabelsEnabledcom.bugsee.option.reporting.ui.labels-enabledbooleanfalse
ReportingUILabelsRequiredcom.bugsee.option.reporting.ui.labels-requiredbooleanfalse
ReportingUIPrioritySelectorEnabledcom.bugsee.option.reporting.ui.priority-selector-enabledbooleanfalse

ReportingUILabelsRequired = true implies ReportingUILabelsEnabled = true.

Performance monitoring

See Performance monitoring for the APM overview.

Options constantManifest keyTypeDefault
PerformanceMonitoringcom.bugsee.option.performance.enabledbooleantrue
PerformanceSampleRatecom.bugsee.option.performance.sample-ratefloat [0, 1]0.01
PerformanceUploadModecom.bugsee.option.performance.upload-modeString"batched"
PerformanceAdaptiveSamplingcom.bugsee.option.performance.adaptive-samplingbooleantrue

PerformanceUploadMode accepts "batched" (30 s flush) or "realtime". PerformanceSampleRate gates standalone APM uploads only — every transaction still flows into the capture pipeline for reports regardless of sampling. PerformanceAdaptiveSampling = true turns the sample rate into a ceiling rather than a fixed probability.

Enum reference

Enum-typed options accept the enum constant programmatically, or the enum value name as a string in the manifest (for example, android:value="Blocker" for IssueSeverity.Blocker).

EnumValues
LogLevelError, Warning, Info, Debug, Verbose
VideoModeNone, V1, V2, Fullscreen, DirectBuffers
VideoQualityDefault, Medium, High
FrameRateLow, Medium, High, Raw (no frame-rate cap; only meaningful with VideoMode.DirectBuffers, otherwise coerced to High)
IssueSeverityVeryLow, Medium, High, Critical, Blocker
IssueTypeBug, Crash, Error

Reading effective options at runtime

OptionsContainer is the read-only view of effective launch options. It's returned by Bugsee.getLaunchOptions() and is what extensions receive in their launch(OptionsContainer) callback:

boolean hasOption(String key);
<T> T getOption(String key);
<T> T getOption(String key, T defaultValue);
Map<String, Serializable> toMap();
val opts: OptionsContainer = Bugsee.getLaunchOptions()
val duration: Int = opts.getOption(Options.Duration, 60)

Worked examples

Manifest-only configuration

AndroidManifest.xml
<application ...>
<meta-data android:name="com.bugsee.app-token"
android:value="@string/bugsee_app_token" />

<meta-data android:name="com.bugsee.option.detect.hang"
android:value="true" />
<meta-data android:name="com.bugsee.option.capture.video.frame-rate"
android:value="Medium" />
<meta-data android:name="com.bugsee.option.reporting.triggers.shake"
android:value="false" />
</application>

Programmatic configuration

class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val options: HashMap<String, java.io.Serializable> = hashMapOf(
Options.Duration to 60,
Options.DetectAndReportHang to true,
Options.CaptureVideoFrameRate to FrameRate.Medium,
Options.ReportingTriggerByShake to false,
)
Bugsee.launch(this, "<APP_TOKEN>", options)
}
}

Extension options

Each extension module that ships its own runtime options has a dedicated page:

  • NDK options — native crash detection (bugsee-android-ndk).
  • Leak options — memory and thread leak detection (bugsee-android-leak).

Other shipped extensions (feedback, okhttp, ktor-2, ktor-3, cronet, compose) don't expose runtime options today — they're activated solely by being on the classpath.

Found an issue, typo, or wrong statement on this page? Report it now →