Potential Oboe issue on Virtual Android Device

This last line causes some red in my Android log:

struct AudioSettings
: ChangeListener
, MidiInputCallback
{
    AudioDeviceManager deviceManager;
    AudioSettings()
    {
        DBG("🔹 AudioSettings()");

        deviceManager.initialise(
            1,            // numInputChannelsNeeded
            2,            // numOutputChannelsNeeded
            nullptr,      // XML
            true,         // selectDefaultDeviceOnFailure
            String(),     // preferredDefaultDeviceName
            0             // preferredSetupOptions
            );
        DBG("🔹 1");

Complete log here: Runtime fail -- VirtualDevice in AndroidStudiio · GitHub

I DO have Audio permissions enabled:

Same error tested as repeatable on PixelXL, Nexus6 (both API 30, Android 11.0 Google APIs | x86)

My audioPrefs pane is failing to secure a default input or output device:

I’m able to choose an input device and get working speaker output (although the volume is WAY too quiet, < 25% of the perceived vol on my macOS build)


^ first and third work.

However setting a mic fails on all options:

Console-log when selecting mic here: selectingMic.txt · GitHub

Clearly it’s the same as the error-section of the initial log. So Oboe, it seems, is failing to select a mic.

And the mic-select-fail reverts the spkr-success. So that’s what’s happening in my startup.

Is this fixable? Is it even a JUCE/Oboe bug or a Simulator quirk?
I don’t have an Android device to test on, alas.

Fixed thanks to atsushieno on TheAudioProgrammer Discord #juce

Android, since API 23, requires the user to consent to mic-usage.
https://docs.juce.com/master/classRuntimePermissions.html

There’s a docbug in there: It should be RuntimePermissions::recordAudio instead of RuntimePermissions::audioRecording