Flashlight signaling safety
Android Torch API Limits
Public safety, source notes, and device-boundary documentation for Strobotorch.
Android Torch API Limits
Strobotorch uses public Android torch APIs only.
The default route is:
CameraManager.setTorchMode()for API 23+ torch on/offCameraManager.turnOnTorchWithStrengthLevel()for API 33+ strength levels when the device reports more than one torch strength level
The app does not:
- open the camera in the default build
- request
android.permission.CAMERA - use root, sysfs, hidden vendor APIs, OEM HAL access, or kernel access
- claim deterministic real-time optical timing
Android can make torch resources unavailable when another app owns the camera
or when camera resources are constrained. Strobotorch treats TorchCallback
state and platform exceptions as normal runtime events, not impossible errors.
Timing summaries describe when the app requested torch commands and how late those commands were relative to the scheduler. They do not prove actual LED optical transition timing.
The diagnostic pulse UI can request rates up to 60 Hz where the device and public Android APIs can keep up. Device reports must describe those values as requested command rates unless an external optical sensor is used.
Audio Capture Limits
Audio-reactive mode uses public Android audio APIs only:
AudioRecordfor microphone and ambient audio.AudioPlaybackCaptureConfigurationwith user-approvedMediaProjectionfor Android 10+ internal playback capture.Visualizer(0)as an optional low-quality output-mix visualization source.
Android playback capture is not universal. Source apps can opt out, restricted or protected streams may be unavailable, and Android may return silence when capture is blocked. Visualizer output is partial visualization data, not a high-quality recording interface.