AuthorizationCenter.shared.authorizationStatus not WORKING!!!

XCODE: 15.2 IOS: 16.0.1

Following the document about how to track the current status of AuthorizationStatus seems to be not working on my current environment. https://developer.apple.com/documentation/familycontrols/authorizationcenter/authorizationstatus

The user authorization is .individual

Here is my sample code to identify if the status has changed after revoking the permission from the Settings > ScreenTime

    @ObservedObject var center = AuthorizationCenter.shared
    @Environment(\.dismiss) var dismiss
    @State private var isAlert = false
    
    var body: some View {
        VStack {
            Button {
                dismiss()
            } label: {
                Text("Close")
            }
            .buttonStyle(GrowingButton())
        }
        VStack {
            Button {
                DispatchQueue.main.async {
                    if center.authorizationStatus != .approved {
                        Task {
                            do {
                                if #available(iOS 15.0, *) {
                                    if #available(iOS 16.0, *) {
                                        //let center = AuthorizationCenter.shared
                                        try await center.requestAuthorization(for: .individual)
                                    }
                                }
                            }
                        }
                    } else {
                        self.isAlert = true
                    }
                }
            } label: {
                Text("Validate Screen Time Permission")
            }
            .buttonStyle(GrowingButton())
            .alert(isPresented: $isAlert, content: {
                switch center.authorizationStatus {
                case .notDetermined:
                    Alert(title: Text("Screen Time not Determined"))
                case .denied:
                    Alert(title: Text("Screen Time is Denied"))
                case .approved:
                    Alert(title: Text("Screen Time is Approved"))
                @unknown default:
                    Alert(title: Text("Unknown"))
                }
            })
        }
    }
}

It will still fallback to the APPROVED state even if the permission was already revoked from ScreenTime settings.

Highly appreciated if anybody from the community can help me figure out this thing to work.

Thank you.

It does not work for .child type also. Revoking authorization from Screen time screen does not fire authorizationStatus in the app

Please vote up the thread

AuthorizationCenter.shared.authorizationStatus not WORKING!!!
 
 
Q