Skip to main content

Privacy and video

note

Looking for the previous SDK? See the 6.x video privacy page.

Disabling video

Video recording can be disabled completely via the CaptureVideo option — see configuration.

Protect activities

Add a fully-qualified activity class name to the list of secure activities. When the user navigates to that activity, the screen is substituted with black frames and touch events are dropped.

Bugsee.addSecureActivity(MySecretActivity.class.getName());
// Later:
Bugsee.removeSecureActivity(MySecretActivity.class.getName());
boolean secure = Bugsee.isSecureActivity(MySecretActivity.class.getName());

Activities carrying the system FLAG_SECURE flag are protected without any Bugsee call.

Protecting views

By View reference

Bugsee.addSecureView(mySecretView);
// View is substituted by a black rectangle in the video.
Bugsee.removeSecureView(mySecretView);

By Fragment

In 7.x the hosting-Activity argument has been removed — pass the Fragment directly.

Bugsee.addSecureView(myFragment);
Bugsee.removeSecureView(myFragment);
note

Bugsee.addSecureViews(int layoutId, Activity) still exists but is deprecated in 7.x and always returns false. Walk the view tree yourself and call addSecureView(View) per node.

Jetpack Compose

Add the Compose extension module and apply Modifier.bugseeSecure() to any sensitive composable:

// build.gradle.kts
implementation("com.bugsee:bugsee-android-compose:<version>")
import com.bugsee.library.compose.bugseeSecure

Text(
text = "Confidential",
modifier = Modifier.bugseeSecure()
)

Stock password fields (a TextField using PasswordVisualTransformation, which Compose marks with the Password semantics property) are redacted automatically once the Compose module is on the classpath — no modifier needed. See Compose integration for the full list of auto-detected field types and details.

WebView elements

Add class="bugsee-hide" to any element that must be redacted, or class="bugsee-show" to opt back in an element that is hidden by default (like type="password"). For everything else Bugsee captures inside a WebView, see WebView capture.

<input type="text" class="bugsee-hide">
<input type="password" class="bugsee-show">

If you call WebView.setWebViewClient(...) yourself, register the WebView explicitly:

webView.setWebViewClient(new WebViewClient());
Bugsee.addSecureWebView(webView);

Protecting by coordinates

Bugsee.addSecureRectangle(new Rect(100, 100, 200, 200));
List<Rect> all = Bugsee.getAllSecureRectangles();
Bugsee.removeSecureRectangle(new Rect(100, 100, 200, 200));
Bugsee.removeAllSecureRectangles();

Blackout — time-bounded full redaction

Bracket a sensitive flow with startBlackout() / endBlackout() to fully blank the video and drop touches for the duration.

Bugsee.startBlackout();
// ...render / interact with sensitive content...
Bugsee.endBlackout();

For a hard stop of all capture (including log, network, and event collection), call Bugsee.stop() and resume later with Bugsee.launch(...) — see Lifecycle events.

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