Microphone access from control center

Title: Unable to Access Microphone in Control Center Widget – Is It Possible?

Hello everyone,

I'm attempting to create a widget in the Control Center that accesses the microphone, similar to how Shazam does it. However, I'm running into an issue where the widget always prints "Microphone permission denied." It's worth mentioning that microphone access works fine when I'm using the app itself.

Here's the code I'm using in the widget:

swift Copy code func startRecording() async { logger.info("Starting recording...") print("Starting recording...")

recognizedText = ""
isFinishingRecognition = false

// First, check speech recognition authorization
let speechAuthStatus = await withCheckedContinuation { continuation in
    SFSpeechRecognizer.requestAuthorization { status in
        continuation.resume(returning: status)
    }
}

guard speechAuthStatus == .authorized else {
    logger.error("Speech recognition not authorized")
    return
}

// Then, request microphone permission using our manager
let micPermission = await AudioSessionManager.shared.requestMicrophonePermission()
guard micPermission else {
    logger.error("Microphone permission denied")
    print("Microphone permission denied")
    return
}

// Continue with recording...

} Issues:

The code consistently prints "Microphone permission denied" when run from the widget. Microphone access works without issues when the same code is executed from within the app. Questions:

Is it possible for a Control Center widget to access the microphone? If yes, what might be causing the "Microphone permission denied" error in the widget? Are there additional permissions or configurations required to enable microphone access in a widget? Any insights or suggestions would be greatly appreciated!

Thank you.

Microphone access from control center
 
 
Q