CollectorRuntime
Shared runtime scaffolding used by collectors: concurrency limits, per-category timeouts, API-level guards, safe Settings readers and a bounded/timed collect wrapper.
Centralizing these concerns keeps individual collectors small and ensures every probe runs under consistent timeout, concurrency and error-handling policies.
Properties
Default per-collector collection timeout in milliseconds.
Timeout for the OpenGL ES fingerprint probe, which creates a GL context.
Max concurrent passive collectors — limits CPU/IO spikes on refresh.
Timeout for the WebView fingerprint collector, which spins up a WebView.
Functions
Returns true if the running platform is at least the given SDK level.
Runs a collector on the bounded IO dispatcher, wrapped in a trace slice, a timeout and a runCatching guard so a slow or failing probe cannot stall the app.
Safely reads an integer from Settings.Global as a string.
Safely reads a value from Settings.Global, swallowing any exception.
Safely reads a value from Settings.Secure, swallowing any exception.
Executes block while holding a permit from passiveSemaphore, capping concurrent passive collection.