Launching with options

Bugsee behavior is very customizable, if default configuration is not satisfying your needs you can launch the SDK with additional parameters passed as a dictionary.


public class MyApplication extends Application {
    public void onCreate() {
        HashMap<String, Object> options = new HashMap<>();
        options.put(Bugsee.Option.MaxRecordingTime, 60);
        options.put(Bugsee.Option.ShakeToTrigger, false);
        Bugsee.launch(this, "<your_app_token>", options);


class MyApplication : Application() {
    override fun onCreate() {
        val options : HashMap<String, Any> = hashMapOf(
                Bugsee.Option.MaxRecordingTime to 60,
                Bugsee.Option.ShakeToTrigger to false
        Bugsee.launch(this, "<your_app_token>", options)

Alternatively, parameters can be passed as LaunchOptions class instance.

public class MyApplication extends Application {
    public void onCreate() {
        LaunchOptions options = new LaunchOptions();
        Bugsee.launch(this, "<your_app_token>", options);

Note, that not all of the following options will work in an Instant App. Specifically, NotificationBarTrigger, VideoEnabled and CaptureLogs options are always set to false for an Instant App.

Stop, Relaunch

It is also possible to relaunch Bugsee with other options later

// Relaunch with other options.
HashMap<String, Object> options = new HashMap<>();
// Set other launch options.

or stop the events and video recording.

// Stop recording completely.

Available Options

Key Default value Notes
MaxRecordingTime 60 Maximum recording duration (in seconds)
ShakeToTrigger true Shake gesture to trigger report
NotificationBarTrigger true Trigger report from notification bar
CrashReport true Catch and report application crashes
HandleAnr false Detect ANR (Application Not Responding) and transform it to a meaningful exception. Note: option is experimental and it is not recommended to use it in production builds.
VideoEnabled true Record video. If false, created issues will contain console logs, events and traces, but will not contain video.
ScreenshotEnabled true Attach screenshot to a report. Note, that if VideoEnabled option is false, default value of this option is false too.
ViewHierarchyEnabled true Flag that controls view hierarchy capturing for Bug reports
ExtendedVideoMode false If true, MediaProjection API is used, while recording video. In this case all types of views are recorded, but user is asked to allow video recording. If false, view drawing cache is used to capture the screen. In this case user is not asked to allow video recording, but frame rate is lower and some special views like status bar, soft keyboard and views, which contain Surface (MapView, VideoView, GlSurfaceView, etc.) are not recorded. Option has no effect, if VideoEnabled option is set to false.
VideoMode V1 Screen capture mechanism. This option will replace ExtendedVideoMode in future releases. Gives an access to an experimental V3 mode, which can record views with Surface (MapView, VideoView, GlSurfaceView, etc.) and doesn't require user confirmation to start recording. Video modes comparison is presented below in Video modes comparison section.
VideoScale 1.0 Additional down scaling applied to recorded video, (e.g., 0.5 would reduce both width and height by half).
MonitorNetwork true Monitor network events
RecordHttpBodyWithoutType false Attach http request / response body, which has no declared content type, to a report. If false, only textual body is attached to a report. Option has no effect if MonitorNetwork option value is false.
ServiceMode false Should be used, when Bugsee is launched from service. If true, video is not recorded and recording is not stopped, when app goes to background; ShakeToTrigger and NotificationBarTrigger options are set to false automatically.
CaptureLogs true Automatically capture Logcat logs.
LogLevel BugseeLogLevel.Verbose Minimal log level of Logcat messages, which will be attached to reports. Option has no effect if CaptureLogs option is false. Option has value of type.
MaxDataSize 50 Bugsee will avoid using more disk space than specified (in MB). If total Bugsee data size exceeds specified value, oldest recordings (even not sent) will be removed. Value should not be smaller than 10.
FrameRate FrameRate.High Specifies how often frames are captured. Option has value of type.
WifiOnlyUpload false Upload reports only when a device is connected to a wifi network.
ReportPrioritySelector false Allow user to modify priority manually when reporting - true to allow, false to disallow.
DefaultCrashPriority IssueSeverity.Blocker Default priority for crashes. Option has value of type.
DefaultBugPriority IssueSeverity.High Default priority for bugs. Option has value of type.
CaptureDeviceAndNetworkNames true Capture device name, wifi SSID and mobile carrier name.
RememberUserDecisionForScreenCapture false Instructs Bugsee SDK to remember the choice user has made when permission dialog was shown for VideoMode.V2. To reset the remembered choice, use Bugsee.resetVideoCapturePermissionDecision() method.
ReportSummaryRequired false Controls whether "Summary" field in bug reporting UI is mandatory or not.
ReportDescriptionRequired false Controls whether "Description" field in bug reporting UI is mandatory or not.
ReportEmailRequired false Controls whether "Email" field in bug reporting UI is mandatory or not.

Video modes comparison

Mode name Captures SurfaceView (GlSurfaceView, VideoView, MapView, etc.) Captures system views (keyboard, status bar, etc.) Requires user confirmation Minimal supported Android API level
VideoMode.V1 - - - 21
VideoMode.V2** + + + 21
VideoMode.V3*** + - - 24

Video mode is switched from VideoMode.V3 to VideoMode.V1 on Samsung devices automatically, because VideoMode.V3 usage on Samsung devices is known to lead to critical problems.

**VideoMode.V2: On Android 10 it requires FOREGROUND_SERVICE permission. If you want to use that mode, your application will have to declare that permission in manifest.

***VideoMode.V3: On Samsung devices, VideoMode.V3 will work only on Android 8 and up. Earlier versions of Android on Samsung devices are known to have issues when VideoMode.V3 is being used and hence it preemtively disabled there.