MY LLM WROTE:
As promised in #2570 — on Android, denying the RECORD_AUDIO permission exits the app with no message of any kind: no window, no dialog, no toast. The user taps the icon and stays on their home screen.
It is deliberate (src/main.cpp:833-841, a bare return 0), and the exit status is 0, so nothing marks it as a failure. The trap is that Android sets USER_FIXED on an explicit deny, which suppresses the permission dialog on every later launch — so the app is then permanently unstartable with no in-app way back and no explanation.
Reproduced 8/8 on two builds (mainline 3.12.3dev-1f9667ec and a PR build), Android 16 / arm64 / Qt 5.15.2, one device. exit app 0 appears in logcat ~200 ms after the library loads.
A message naming the microphone permission before exiting would fix it. Non-zero exit status would help tooling too.
@ann0see — you suggested denied permissions cause bad states on all platforms. Likely, but I only tested Android, and this mechanism is Android-specific, so I'd treat the desktop cases as separate.
MY LLM WROTE:
As promised in #2570 — on Android, denying the
RECORD_AUDIOpermission exits the app with no message of any kind: no window, no dialog, no toast. The user taps the icon and stays on their home screen.It is deliberate (
src/main.cpp:833-841, a barereturn 0), and the exit status is 0, so nothing marks it as a failure. The trap is that Android setsUSER_FIXEDon an explicit deny, which suppresses the permission dialog on every later launch — so the app is then permanently unstartable with no in-app way back and no explanation.Reproduced 8/8 on two builds (mainline
3.12.3dev-1f9667ecand a PR build), Android 16 / arm64 / Qt 5.15.2, one device.exit app 0appears in logcat ~200 ms after the library loads.A message naming the microphone permission before exiting would fix it. Non-zero exit status would help tooling too.
@ann0see — you suggested denied permissions cause bad states on all platforms. Likely, but I only tested Android, and this mechanism is Android-specific, so I'd treat the desktop cases as separate.