jamulussoftware / jamulussoftware/jamulus

Android: denying the microphone permission exits the app silently

Open Beginner friendly
#3,846 0 comments 0 reactions 0 assignees View on GitHub
AI
Dominant language
C
Stars
1.1k
Forks
248
Avg merge
2d 3h
Merged PRs (30d)
9

Description

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.

Contributor guide

Open the contributing guide

Research direction

Start at src/main.cpp:833-841 and trace the Android permission-denial path that returns immediately after RECORD_AUDIO is denied. Reproduce the behavior on Android and inspect logcat; done means the app reports the missing microphone permission before exiting, with the exit status behavior addressed as described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, cpp
Domain
audio-video-rtc, mobile-dev
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
78/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.