diff --git a/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp b/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp index 3c2615cd7d..6417e3d05c 100644 --- a/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp +++ b/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp @@ -1196,7 +1196,13 @@ void AudioDeviceSelectorComponent::updateAllControls() void AudioDeviceSelectorComponent::buttonClicked (Button* btn) { if (bluetoothButton == btn) - BluetoothMidiDevicePairingDialogue::open(); + { + if (! RuntimePermissions::isGranted (RuntimePermissions::bluetoothMidi)) + RuntimePermissions::request (RuntimePermissions::bluetoothMidi, nullptr); + + if (RuntimePermissions::isGranted (RuntimePermissions::bluetoothMidi)) + BluetoothMidiDevicePairingDialogue::open(); + } } ListBox* AudioDeviceSelectorComponent::getMidiInputSelectorListBox() const noexcept diff --git a/modules/juce_core/native/juce_android_RuntimePermissions.cpp b/modules/juce_core/native/juce_android_RuntimePermissions.cpp index 403fdfaeb7..9cdf51318e 100644 --- a/modules/juce_core/native/juce_android_RuntimePermissions.cpp +++ b/modules/juce_core/native/juce_android_RuntimePermissions.cpp @@ -40,7 +40,9 @@ namespace } std::unique_ptr uptr (callbackPtr); - (*uptr) (permissionWasGranted); + + if (RuntimePermissions::Callback callbackObj = *uptr) + callbackObj (permissionWasGranted); } }