Configuration (7.x Beta)
This page documents Bugsee Android SDK 7.x (beta). The stable 6.x configuration reference is available at /sdk/android/configuration for comparison. Option names, defaults, and behavior may still change before the final 7.0 release.
Two configuration channels
Bugsee 7.x exposes SDK configuration through two complementary channels.
Any option can be set through either one; values passed programmatically
to Bugsee.launch() take precedence over values declared in the manifest.
- Manifest
<meta-data>entries (recommended for auto-launch). When the application token is present inAndroidManifest.xml, the SDK launches automatically at app startup viaBugseeInitProvider. Every option has a manifest key of the formcom.bugsee.option.<group>.<name>that the SDK reads during this auto-launch path — no code required. Map<String, Serializable>passed toBugsee.launch(). Pass an options map keyed by theOptions.*string constants. The same map shape is returned byBugsee.getLaunchOptions()via theOptionsContainerinterface, and is what extensions receive inside theirlaunch(OptionsContainer)callback.
The legacy LaunchOptions class from 6.x has been removed. All
configuration in 7.x flows through either the manifest or the
Map<String, Serializable> passed to launch(). See the
6.x → 7.x migration guide for details.
Manifest metadata reference
Add <meta-data> entries under the <application> tag. For enum-typed
options, pass the enum value name as a string (for example,
android:value="High" for FrameRate.High).
<application ...>
<!-- Required: app token -->
<meta-data android:name="com.bugsee.app-token"
android:value="@string/bugsee_app_token" />
<!-- Optional: override any SDK option -->
<meta-data android:name="com.bugsee.option.detect.crash-ndk"
android:value="true" />
<meta-data android:name="com.bugsee.option.capture.breadcrumbs"
android:value="true" />
</application>
General
Options constant | Manifest key | Type | Default | Description |
|---|---|---|---|---|
Duration | com.bugsee.option.config.duration | int (seconds) | 60 | Maximum capture duration kept in the video ring buffer. |
WifiOnlyUpload | com.bugsee.option.config.wifi-only-upload | boolean | false | Restrict report uploads to Wi-Fi networks. |
ReportProcessingInProcess | com.bugsee.option.config.report-processing-in-process | boolean | true | Process reports in-process instead of via JobScheduler. |
ReportHandlerCallbackTimeout | com.bugsee.option.config.report-handler-callback-timeout | int (seconds) | 30 | Timeout for user-supplied ReportHandler callbacks. |
Detection
See detection.mdx for the full overview of crash, hang, exit, and main-thread-misuse detection.
Options constant | Manifest key | Type | Default | Description |
|---|---|---|---|---|
DetectAndReportCrash | com.bugsee.option.detect.crash | boolean | true | Catch and report Java/Kotlin crashes. |
DetectAndReportCrashNdk | com.bugsee.option.detect.crash-ndk | boolean | false | Catch and report native (NDK) crashes via Breakpad. |
DetectAndReportEarlyCrash | com.bugsee.option.detect.early-crash | boolean | false | Catch crashes that occur before Bugsee.launch() attaches. |
DetectAndReportHang | com.bugsee.option.detect.hang | boolean | false | Detect main-thread hangs. |
DetectAndReportMainThreadMisuse | com.bugsee.option.detect.main_thread_misuse | boolean | false | Report file I/O, network, DB, or SharedPreferences calls made on the main thread. |
DetectAndReportHttpErrors | com.bugsee.option.detect.http-errors | boolean | false | Convert HTTP 5xx responses to error reports. |
DetectAndReportExit | com.bugsee.option.detect.exit | boolean | false | Master switch for ApplicationExitInfo-based exit reporting. |
DetectAndReportExitLowMemory | com.bugsee.option.detect.exit.low_memory | boolean | true | Include low-memory kills in exit reports. |
DetectAndReportExitNotResponding | com.bugsee.option.detect.exit.not_responding | boolean | true | Include ANR-caused exits. |
DetectAndReportExitExcessiveResourceUsage | com.bugsee.option.detect.exit.excessive_resource_usage | boolean | false | Include exits caused by excessive resource usage. |
DetectAndReportExitDependencyDied | com.bugsee.option.detect.exit.dependency_died | boolean | false | Include exits caused by dependent-process death. |
DetectAndReportExitUserRequested | com.bugsee.option.detect.exit.user_requested | boolean | false | Include exits triggered by user action. |
DetectAndReportExitUserWasStopped | com.bugsee.option.detect.exit.user_was_stopped | boolean | false | Include stops issued by the user from settings. |
DetectAndReportExitPermissionChanged | com.bugsee.option.detect.exit.permission_changed | boolean | false | Include exits caused by permission revocation. |
DetectAndReportExitPackageUpdated | com.bugsee.option.detect.exit.package_updated | boolean | false | Include exits caused by package updates. |
DetectAndReportExitPackageStateChanged | com.bugsee.option.detect.exit.package_state_changed | boolean | false | Include exits caused by package state transitions. |
DetectAndReportExitOther | com.bugsee.option.detect.exit.other | boolean | false | Include "other" ExitInfo reason codes. |
DetectAndReportExitUnknown | com.bugsee.option.detect.exit.unknown | boolean | false | Include exits with unknown reason codes. |
Capture
See privacy/video.mdx for details on video capture modes and redaction.
Options constant | Manifest key | Type | Default | Description |
|---|---|---|---|---|
CaptureLogs | com.bugsee.option.capture.logs | boolean | true | Capture Logcat output into reports. |
CaptureLogsLevel | com.bugsee.option.capture.logs.level | LogLevel | Verbose | Minimum log level written to reports. |
CaptureLogsUseAllSources | com.bugsee.option.capture.logs.allsources | boolean | false | Read from all Logcat buffers (main, system, crash, events). |
CaptureScreenshot | com.bugsee.option.capture.screenshot | boolean | true | Attach a screenshot to each report. |
CaptureNetwork | com.bugsee.option.capture.network | boolean | true | Monitor HTTP requests and responses. |
CaptureNetworkBodySizeLimit | com.bugsee.option.capture.network.body-size-limit | int (bytes) | 20480 | Maximum network body size captured per request/response. |
CaptureNetworkBodyWithoutType | com.bugsee.option.capture.network.body-without-type | boolean | false | Capture bodies that lack a declared content type. |
CaptureNetworkUseDefaultSanitizer | com.bugsee.option.capture.network.default-sanitizer | boolean | true | Apply the built-in sanitizer to request/response headers and bodies. |
CaptureViewHierarchy | com.bugsee.option.capture.view-hierarchy | boolean | true | Record the Android view hierarchy with each report. |
CaptureBreadcrumbs | com.bugsee.option.capture.breadcrumbs | boolean | true | Collect UI/lifecycle breadcrumbs. |
CaptureVideo | com.bugsee.option.capture.video | boolean | true | Record screen video. Disables CaptureScreenshot when false. |
CaptureVideoMode | com.bugsee.option.capture.video.mode | VideoMode | V2 | Screen capture implementation (see Enums). |
CaptureVideoQuality | com.bugsee.option.capture.video.quality | VideoQuality | Default | Output video quality preset. |
CaptureVideoFrameRate | com.bugsee.option.capture.video.frame-rate | FrameRate | High | Capture frame rate preset. |
CaptureVideoScale | com.bugsee.option.capture.video.scale | float (0.1–1.0) | 1.0 | Additional down-scaling applied to the recorded video. |
CaptureVideoSecureScrolling | com.bugsee.option.capture.video.secure-scrolling | boolean | false | Obfuscate content of RecyclerView/ListView during scroll. |
CaptureVideoUsingCustomMuxer | com.bugsee.option.capture.video.custom-muxer | boolean | false | Use Bugsee's custom MP4 muxer instead of the platform one. |
CaptureVideoFullscreenRememberUserDecision | com.bugsee.option.capture.video.fullscreen-remember-decision | boolean | true | Remember the user's consent choice for VideoMode.V2. |
CaptureVideoFullscreenKeepRunning | com.bugsee.option.capture.video.fullscreen-keep-running | boolean | true | Keep recording when the app is backgrounded (V2 only). |
Reporting triggers
Options constant | Manifest key | Type | Default | Description |
|---|---|---|---|---|
ReportingTriggerByShake | com.bugsee.option.reporting.triggers.shake | boolean | true | Open the bug-reporting UI on shake gesture. |
ReportingTriggerByScreenshot | com.bugsee.option.reporting.triggers.screenshot | boolean | false | Open the bug-reporting UI when a system screenshot is taken. |
ReportingTriggerByNotification | com.bugsee.option.reporting.triggers.notification-bar | boolean | true | Show a persistent notification that opens the reporting UI. |
ReportingTriggerByBroadcast | com.bugsee.option.reporting.triggers.broadcast | boolean | false | Enable broadcast-intent trigger for programmatic reporting. |
Reporting defaults
Options constant | Manifest key | Type | Default | Description |
|---|---|---|---|---|
ReportingDefaultCrashPriority | com.bugsee.option.reporting.defaults.crash-priority | IssueSeverity | Blocker | Default priority assigned to crash reports. |
ReportingDefaultErrorPriority | com.bugsee.option.reporting.defaults.error-priority | IssueSeverity | High | Default priority for error reports. |
ReportingDefaultBugPriority | com.bugsee.option.reporting.defaults.bug-priority | IssueSeverity | High | Default priority for user-submitted bug reports. |
Reporting UI
Options constant | Manifest key | Type | Default | Description |
|---|---|---|---|---|
ReportingUISummaryRequired | com.bugsee.option.reporting.ui.summary-required | boolean | false | Make the "Summary" field mandatory in the reporting UI. |
ReportingUIDescriptionRequired | com.bugsee.option.reporting.ui.description-required | boolean | false | Make "Description" mandatory. |
ReportingUIEmailRequired | com.bugsee.option.reporting.ui.email-required | boolean | false | Make "Email" mandatory. |
ReportingUILabelsEnabled | com.bugsee.option.reporting.ui.labels-enabled | boolean | false | Show the labels field in the reporting UI. |
ReportingUILabelsRequired | com.bugsee.option.reporting.ui.labels-required | boolean | false | Make labels mandatory (implies ReportingUILabelsEnabled). |
ReportingUIPrioritySelectorEnabled | com.bugsee.option.reporting.ui.priority-selector-enabled | boolean | false | Allow the user to change report priority from the reporting UI. |
Performance monitoring
See performance.mdx for the APM overview.
Options constant | Manifest key | Type | Default | Description |
|---|---|---|---|---|
PerformanceMonitoring | com.bugsee.option.performance.enabled | boolean | true | Global APM enable switch. |
PerformanceSampleRate | com.bugsee.option.performance.sample-rate | float (0.0–1.0) | 0.01 | Probability a transaction is uploaded standalone. Does not affect capture. |
PerformanceUploadMode | com.bugsee.option.performance.upload-mode | String | "batched" | "batched" (30 s flush) or "realtime". |
Programmatic option keys
The com.bugsee.library.contracts.options.Options interface defines a
String constant for every manifest key above. Use these constants as map
keys when calling Bugsee.launch() or Bugsee.relaunch().
General
| Constant | Default |
|---|---|
Duration | 60 |
WifiOnlyUpload | false |
ReportProcessingInProcess | true |
ReportHandlerCallbackTimeout | 30 |
Detection
| Constant | Default |
|---|---|
DetectAndReportCrash | true |
DetectAndReportCrashNdk | false |
DetectAndReportEarlyCrash | false |
DetectAndReportHang | false |
DetectAndReportMainThreadMisuse | false |
DetectAndReportHttpErrors | false |
DetectAndReportExit | false |
DetectAndReportExitLowMemory | true |
DetectAndReportExitNotResponding | true |
DetectAndReportExitExcessiveResourceUsage | false |
DetectAndReportExitDependencyDied | false |
DetectAndReportExitUserRequested | false |
DetectAndReportExitUserWasStopped | false |
DetectAndReportExitPermissionChanged | false |
DetectAndReportExitPackageUpdated | false |
DetectAndReportExitPackageStateChanged | false |
DetectAndReportExitOther | false |
DetectAndReportExitUnknown | false |
Capture
| Constant | Default |
|---|---|
CaptureLogs | true |
CaptureLogsLevel | LogLevel.Verbose |
CaptureLogsUseAllSources | false |
CaptureScreenshot | true |
CaptureNetwork | true |
CaptureNetworkBodySizeLimit | 20480 |
CaptureNetworkBodyWithoutType | false |
CaptureNetworkUseDefaultSanitizer | true |
CaptureViewHierarchy | true |
CaptureBreadcrumbs | true |
CaptureBreadcrumbsExtras | varies |
CaptureVideo | true |
CaptureVideoMode | VideoMode.V2 |
CaptureVideoQuality | VideoQuality.Default |
CaptureVideoFrameRate | FrameRate.High |
CaptureVideoScale | 1.0 |
CaptureVideoSecureScrolling | false |
CaptureVideoUsingCustomMuxer | false |
CaptureVideoFullscreenRememberUserDecision | true |
CaptureVideoFullscreenKeepRunning | true |
Reporting triggers and UI
| Constant | Default |
|---|---|
ReportingTriggerByShake | true |
ReportingTriggerByScreenshot | false |
ReportingTriggerByNotification | true |
ReportingTriggerByBroadcast | false |
ReportingDefaultCrashPriority | IssueSeverity.Blocker |
ReportingDefaultErrorPriority | IssueSeverity.High |
ReportingDefaultBugPriority | IssueSeverity.High |
ReportingUISummaryRequired | false |
ReportingUIDescriptionRequired | false |
ReportingUIEmailRequired | false |
ReportingUILabelsEnabled | false |
ReportingUILabelsRequired | false |
ReportingUIPrioritySelectorEnabled | false |
Performance monitoring
| Constant | Default |
|---|---|
PerformanceMonitoring | true |
PerformanceSampleRate | 0.01 |
PerformanceUploadMode | "batched" |
OptionsContainer
OptionsContainer is the read-only view of effective launch options.
It is 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();
Enums
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).
| Enum | Values |
|---|---|
LogLevel | Error, Warning, Info, Debug, Verbose |
VideoMode | None, V1, V2, Fullscreen, DirectBuffers |
VideoQuality | Default, Medium, High |
FrameRate | Low, Medium, High |
IssueSeverity | VeryLow, Medium, High, Critical, Blocker |
IssueType | Bug, Crash, Error |
Examples
Manifest-only configuration
<application ...>
<meta-data android:name="com.bugsee.app-token"
android:value="@string/bugsee_app_token" />
<meta-data android:name="com.bugsee.option.detect.crash-ndk"
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
- Kotlin
- Java
class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
val options: HashMap<String, java.io.Serializable> = hashMapOf(
Options.Duration to 60,
Options.ReportingTriggerByShake to false,
Options.DetectAndReportCrashNdk to true,
Options.CaptureVideoFrameRate to FrameRate.Medium
)
Bugsee.launch(this, "<your-app-token>", options)
}
}
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
HashMap<String, Serializable> options = new HashMap<>();
options.put(Options.Duration, 60);
options.put(Options.ReportingTriggerByShake, false);
options.put(Options.DetectAndReportCrashNdk, true);
options.put(Options.CaptureVideoFrameRate, FrameRate.Medium);
Bugsee.launch(this, "<your-app-token>", options);
}
}
Reading effective options
val opts: OptionsContainer = Bugsee.getLaunchOptions()
val duration: Int = opts.getOption(Options.Duration, 60)
val ndkEnabled: Boolean = opts.getOption(Options.DetectAndReportCrashNdk, false)
Related pages
- Detection — crash, hang, exit, and main-thread-misuse configuration.
- Performance — APM transactions, spans, and sampling.
- Privacy: video — video modes, secure areas, and redaction.