Post

Replies

Boosts

Views

Activity

The APNs delay to send notification on iOS 26.4
In my VoIP app, we use StartRing and StopRing via VoIP push to my app. But recently, I found some disordered VoIP notifications, my VoIP app received the StopRing push before the StartRing push. Examples: Server log: // send StartRing startring: - Apr 9, 2026 @ 14:54:43.255 .."pushType":"voip","priority":10, ... // send StopRing stop-ring Apr 9, 2026 @ 14:54:47.645 ..."pushType":"background","priority":5,"... VoIP app log: // receive StopRing 2026-04-0909:54:48.858 CDT : INFO : [RcRtc] [0x1feeba1c0] [PushNotificationParser]call push notification handled. action: StopRing telephony session id: s-a0dd8601926c7z19d72bbf8b9z1e62ec10000 sid: 178503189447188 // receive StartRing 2026-04-0909:54:49.524 CDT : INFO : [RcRtc] [0x1feeba1c0] [PushNotificationParser]call push notification handled. action: StartRing telephony session id: s-a0dd8601926c7z19d72bbf8b9z1e62ec10000 sid: 178503189447188 Then we can see the StartRing send first, but received in the app after the StopRing. The StartRing took abunt 6s to send and the StopRing took about 1s. So I guess there is an issue in the APNs part on iOS26.4. We saw there is a peak after iOS26.4 and iOS 26.4.1 than old iOS versions. Thanks.
8
0
423
3d
How to use the new iOS26.4 method: pushRegistry(_:didReceiveIncomingVoIPPushWith:metadata:withCompletionHandler:)
I have a VoIP app, now try to implement the new method which support the "PKVoIPPushMetadata" in iOS 26.4. Code as below: /// iOS 26.4+ (SDK with `PKVoIPPushMetadata`): prefer this path for VoIP per Apple; completion is `@Sendable` on supported SDKs. @available(iOS 26.4, *) func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingVoIPPushWith payload: PKPushPayload, metadata: PKVoIPPushMetadata, withCompletionHandler completion: @escaping @Sendable () -> Void) { print("willtest: didReceiveIncomingVoIPPushWith: metadata=\(metadata)") handleVoIPPush(payload: payload, metadataMustReport: metadata.mustReport, completion: completion) } func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) { print("willtest: didReceiveIncomingPushWith: PKPushType=\(type)") handleVoIPPush(payload: payload, metadataMustReport: nil, completion: completion) } But the voip push only goes to the old method on my iOS26.4 device(iPhone17). And it will go to the new method after I delete the old method. So how can I use this method in my app? I must support iOS16+ versions.
3
1
188
4d
Can I add "com.apple.developer.calling-app" in the InHouse account?
https://developer.apple.com/documentation/callkit/preparing-your-app-to-be-the-default-calling-app I have 2 accounts, one for App store and one for tesing (Inhouse type). I added the capability in the Xcode project, and can run it. But when I run a Inhouse build for it on my CI server, it failed. So is the Inhouse build support this "com.apple.developer.calling-app"?
1
0
94
Aug ’25
How to check if my app is set as default calling app?
My app support ringout feature, when set Ringout, all the calls in my app will go to native, by using tel://xxx. But when my app set as the default calling app by the user. Then when user make a call from Contact, it will jump to my app, but app will will route this call to native. So there is a issue for this, then the quesion is: How to check if my app is set as default calling app?
Topic: UI Frameworks SubTopic: UIKit Tags:
1
0
133
Aug ’25
Audio issue on iPhone 15 pro (iOS18.5)
I have an audio issue on iPhone 15 Pro (iOS18.5). After some steps, the new call will be on one-way audio status, but tap mute and unmute will back to normal. See the attached video and check the "yellow dot indicator" for the audio status. Video link: https://youtube.com/shorts/DqYIIIqtMKI?feature=share I have a similar issue on iOS15 and iOS16, and no issue on iOS17, but now I have this issue on iOS18 with dynamic island model devices. Please check. Thanks.
5
1
320
Jun ’25
How to detect the SIM card status?
Before iOS16, we can use https://developer.apple.com/documentation/coretelephony/ctcarrier But after iOS this is deprecated and has no replacement. There are some discussions on it, eg. https://developer.apple.com/forums/thread/714876 https://developer.apple.com/forums/thread/770400 Now I asked AI, then it provided this solution, to check the serviceCurrentRadioAccessTechnology, so it this ok to check the SIM card status? var hasSIMCard = false let info = CTTelephonyNetworkInfo() if let rat = info.serviceCurrentRadioAccessTechnology, rat.values.contains(where: { !$0.isEmpty }) { hasSIMCard = true. // has RAT } BTW, I can see a lot of changes in the Core Telephony framework. https://developer.apple.com/documentation/coretelephony 1.isSIMInserted https://developer.apple.com/documentation/coretelephony/ctsubscriber/issiminserted A Boolean property that indicates whether a SIM is present. iOS 18.0+ iPadOS 18.0+ This value property is true if the system finds a SIM matching the Info.plist carrier information (MCC / MNC / GID1 / GID2). Is this ok to check SIM insert status, this seems must preconfig some info in the info.plist. 2.iOS26 provide CTCellularPlanStatus https://developer.apple.com/documentation/coretelephony/ctcellularplanstatus Can I use this to check SIM status?
2
0
305
Jun ’25
The proximity sensor works abnormal in some devices.
Steps to Reproduce make an outbound call cover the sensor Actual Behavior the screen won't go dark device iOS Result iphone15 17 Pass iphone14p 18.0.1 Pass iphoneXs_pro max 18.1.1 Pass iphone13pro max 18.2.1 Pass iphone16pro 18.2 Fail iphone15pro max 18.3 Fail iphone12 pro max 18.3 Fail ps: Skype has the same probelm Seems like this issue only happens on iOS18.2+ on some devices, so is there a bug for this?
3
0
409
Apr ’25
Some questions about CarPlay UI and entitlement
I read this doc and find some key info. https://developer.apple.com/carplay/documentation/CarPlay-App-Programming-Guide.pdf CarPlay app entitlements All CarPlay apps require a CarPlay app entitlement that matches your app type. To request a CarPlay app entitlement, go to http://developer.apple.com/carplay and provide information about your app, including the type of entitlement that you are requesting. You also need to agree to the CarPlay Entitlement Addendum. Apple will review your request. If your app meets the criteria for a CarPlay app, Apple will assign a CarPlay app entitlement to your Apple Developer account and notify you. But I still have questions about the old and new CarPlay. // About account permission I have 2 Apple developer accounts. Account A (normal dev account): Here our app already supports the old-style CarPlay UI. (before iOS14) And I can see there are "CarPlay Messaging App" and "CarPlay VoIP Calling App" in the "Additional Capabilities" tab in my Identifier. Account B (Enterprise account): I can see there is a "CarPlay Communication App" in the "Additional Capabilities" tab in my Identifier. But I don't know (or don't remember) if I have requested this new CarPlay entitlement for this account. Quesiton 1: If I want to refactor my current CarPlay app (from old UI to new UI [iOS14 support]), Do I need to request the CarPlay entitlement for Account A? Because I can not find the "CarPlay Communication App" in Account A portal(or via Xcode). // About New CarPlay UI In the old UI, there are just 2 buttons showing after user tap the App icon now. One is for message and the other one is for VoIP call. But I can see only one VoIP call button in the new CarPlay UI, no seperated message button. Question2: Can I add a message button? If no, how to implement a similiar user experience. Thanks.
1
0
117
Apr ’25
The app will be wake up from killed status by silent notification or not?
The app will be wake up from killed status by silent notification or not? This is a question for years, from my test. It will wake up. Here the wake up means it will call the "didFinishLaunchingWithOptions" method. But we can not see the app in the "recent apps" list after switching home-screen up. So any Apple dev can give me a detailed explain for this?
6
0
540
Mar ’25
Crash in QLPreviewController on iOS18.1 +
We found some Firebase crashes in QLPreviewController on iOS18.1 +. It shows cash info in QLPreviewController that we haven't changed for some years. Please help with this. Thanks in advance. // stack info from Firebase Fatal Exception: NSInvalidArgumentException *** -[NSURL URLByAppendingPathComponent:]: component, components, or pathExtension cannot be nil. 0 CoreFoundation __exceptionPreprocess 1 libobjc.A.dylib objc_exception_throw 2 Foundation -[NSURL(NSURLPathUtilities) URLByAppendingPathComponent:] 3 QuickLookUICore +[NSURL(_QL_Utilities) _QLTemporaryFileURLWithType:filename:] 4 QuickLookUICore +[NSURL(_QL_Utilities) _QLTemporaryFileURLWithType:uuid:] 5 QuickLook -[QLPreviewController(ScreenshotsSupport) screenshotService:generatePDFRepresentationWithCompletion:] 6 ScreenshotServices __82+[SSScreenshotMetadataHarvester _grabPDFRepresentationForIdentifier:withCallback:]_block_invoke_3 7 libdispatch.dylib _dispatch_call_block_and_release 8 libdispatch.dylib _dispatch_client_callout 9 libdispatch.dylib _dispatch_main_queue_drain 10 libdispatch.dylib _dispatch_main_queue_callback_4CF 11 CoreFoundation __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ 12 CoreFoundation __CFRunLoopRun 13 CoreFoundation CFRunLoopRunSpecific 14 GraphicsServices GSEventRunModal 15 UIKitCore -[UIApplication _run] 16 UIKitCore UIApplicationMain 17 Glip main.swift - Line 13 main + 13
1
0
806
Dec ’24
AVAudioSession's "availableInputs" not update in time
// Here addObserver for routeChangeNotification func testAudioRoute() { // My app is an VoIP app, so I need to set "playAndRecord" and "allowBluetooth" try? AVAudioSession.sharedInstance().setCategory(.playAndRecord, options: [.duckOthers, .allowBluetooth, .allowBluetoothA2DP]) NotificationCenter.default.addObserver(self, selector: #selector(currentRouteChanged(noti:)), name: AVAudioSession.routeChangeNotification, object: nil) } // Print the "availableInputs" once got a notification @objc func currentRouteChanged(noti: Notification) { let availableInputs = AVAudioSession.sharedInstance().availableInputs?.compactMap({ $0.portType }) ?? [] let currentRouteInputs = AVAudioSession.sharedInstance().currentRoute.inputs.compactMap({ $0.portType }) let currentRouteOutputs = AVAudioSession.sharedInstance().currentRoute.outputs.compactMap({ $0.portType }) print("willtest: \navailableInputs=\(availableInputs), \ncurrentRouteInputs=\(currentRouteInputs), \ncurrentRouteOutputs=\(currentRouteOutputs)") /* When BT (Airpods pro 2) CONNECTTED: it will print like below when notification comes, this is correct. ---------------------------------------------------------- willtest: availableInputs=[__C.AVAudioSessionPort(_rawValue: MicrophoneBuiltIn), __C.AVAudioSessionPort(_rawValue: BluetoothHFP)], currentRouteInputs=[], currentRouteOutputs=[__C.AVAudioSessionPort(_rawValue: BluetoothA2DPOutput)] ---------------------------------------------------------- When BT (Airpods pro 2) DISCONNECTTED: it will print like below when notification comes, this is wrong. ---------------------------------------------------------- availableInputs=[__C.AVAudioSessionPort(_rawValue: MicrophoneBuiltIn), __C.AVAudioSessionPort(_rawValue: BluetoothHFP)], currentRouteInputs=[], currentRouteOutputs=[__C.AVAudioSessionPort(_rawValue: Speaker)] */ } So my question here is: Why does the "availableInputs" still contain the "C.AVAudioSessionPort(_rawValue: BluetoothHFP)" item even though I have already disconnected the BT device? (Put AirPods in the case.) BTW, if I tap the "Manual" button once I disconnected the BT, it also prints the "wrong" value for "availableInputs", and it will become normal after about 3~4 seconds.
4
0
603
Dec ’24
The APNs delay to send notification on iOS 26.4
In my VoIP app, we use StartRing and StopRing via VoIP push to my app. But recently, I found some disordered VoIP notifications, my VoIP app received the StopRing push before the StartRing push. Examples: Server log: // send StartRing startring: - Apr 9, 2026 @ 14:54:43.255 .."pushType":"voip","priority":10, ... // send StopRing stop-ring Apr 9, 2026 @ 14:54:47.645 ..."pushType":"background","priority":5,"... VoIP app log: // receive StopRing 2026-04-0909:54:48.858 CDT : INFO : [RcRtc] [0x1feeba1c0] [PushNotificationParser]call push notification handled. action: StopRing telephony session id: s-a0dd8601926c7z19d72bbf8b9z1e62ec10000 sid: 178503189447188 // receive StartRing 2026-04-0909:54:49.524 CDT : INFO : [RcRtc] [0x1feeba1c0] [PushNotificationParser]call push notification handled. action: StartRing telephony session id: s-a0dd8601926c7z19d72bbf8b9z1e62ec10000 sid: 178503189447188 Then we can see the StartRing send first, but received in the app after the StopRing. The StartRing took abunt 6s to send and the StopRing took about 1s. So I guess there is an issue in the APNs part on iOS26.4. We saw there is a peak after iOS26.4 and iOS 26.4.1 than old iOS versions. Thanks.
Replies
8
Boosts
0
Views
423
Activity
3d
How to use the new iOS26.4 method: pushRegistry(_:didReceiveIncomingVoIPPushWith:metadata:withCompletionHandler:)
I have a VoIP app, now try to implement the new method which support the "PKVoIPPushMetadata" in iOS 26.4. Code as below: /// iOS 26.4+ (SDK with `PKVoIPPushMetadata`): prefer this path for VoIP per Apple; completion is `@Sendable` on supported SDKs. @available(iOS 26.4, *) func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingVoIPPushWith payload: PKPushPayload, metadata: PKVoIPPushMetadata, withCompletionHandler completion: @escaping @Sendable () -> Void) { print("willtest: didReceiveIncomingVoIPPushWith: metadata=\(metadata)") handleVoIPPush(payload: payload, metadataMustReport: metadata.mustReport, completion: completion) } func pushRegistry(_ registry: PKPushRegistry, didReceiveIncomingPushWith payload: PKPushPayload, for type: PKPushType, completion: @escaping () -> Void) { print("willtest: didReceiveIncomingPushWith: PKPushType=\(type)") handleVoIPPush(payload: payload, metadataMustReport: nil, completion: completion) } But the voip push only goes to the old method on my iOS26.4 device(iPhone17). And it will go to the new method after I delete the old method. So how can I use this method in my app? I must support iOS16+ versions.
Replies
3
Boosts
1
Views
188
Activity
4d
The iOS CallKit end my call without user action.
By analysis the log, seems the following 3 calls has been ended by system callkit (Not mainly trigger the end call): @apple Do you have similar report that the iOS CallKit End the call withtour user action? Device info: iPhone18,1(iPhone 16 Pro) iOS 26.2 RCAppMobile/25.4.30.995 CTRadioAccessTechnologyNR(5G NR)
Replies
8
Boosts
0
Views
325
Activity
3w
Keyboard change callback changed on iOS26
There are 2 textfileds. When focus switches between these 2 fields, On iOS18: it will call the keyboardWillShowNotification On iOS26, it will NOT call this keyboardWillShowNotification. Is it a bug or a feature?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
1
Boosts
1
Views
249
Activity
Sep ’25
Can I add "com.apple.developer.calling-app" in the InHouse account?
https://developer.apple.com/documentation/callkit/preparing-your-app-to-be-the-default-calling-app I have 2 accounts, one for App store and one for tesing (Inhouse type). I added the capability in the Xcode project, and can run it. But when I run a Inhouse build for it on my CI server, it failed. So is the Inhouse build support this "com.apple.developer.calling-app"?
Replies
1
Boosts
0
Views
94
Activity
Aug ’25
How to check if my app is set as default calling app?
My app support ringout feature, when set Ringout, all the calls in my app will go to native, by using tel://xxx. But when my app set as the default calling app by the user. Then when user make a call from Contact, it will jump to my app, but app will will route this call to native. So there is a issue for this, then the quesion is: How to check if my app is set as default calling app?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
1
Boosts
0
Views
133
Activity
Aug ’25
Is there any issue in the open func request(_ transaction: CXTransaction)
I found this api may fail after iOS18.0 open func request(_ transaction: CXTransaction, completion: @escaping ((any Error)?) -> Void) But I can not reproduce it and it will recover after relaunch the app. Is there any issue for this or guide line after iOS18?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
1
Boosts
0
Views
191
Activity
Jul ’25
Audio issue on iPhone 15 pro (iOS18.5)
I have an audio issue on iPhone 15 Pro (iOS18.5). After some steps, the new call will be on one-way audio status, but tap mute and unmute will back to normal. See the attached video and check the "yellow dot indicator" for the audio status. Video link: https://youtube.com/shorts/DqYIIIqtMKI?feature=share I have a similar issue on iOS15 and iOS16, and no issue on iOS17, but now I have this issue on iOS18 with dynamic island model devices. Please check. Thanks.
Replies
5
Boosts
1
Views
320
Activity
Jun ’25
How to detect the SIM card status?
Before iOS16, we can use https://developer.apple.com/documentation/coretelephony/ctcarrier But after iOS this is deprecated and has no replacement. There are some discussions on it, eg. https://developer.apple.com/forums/thread/714876 https://developer.apple.com/forums/thread/770400 Now I asked AI, then it provided this solution, to check the serviceCurrentRadioAccessTechnology, so it this ok to check the SIM card status? var hasSIMCard = false let info = CTTelephonyNetworkInfo() if let rat = info.serviceCurrentRadioAccessTechnology, rat.values.contains(where: { !$0.isEmpty }) { hasSIMCard = true. // has RAT } BTW, I can see a lot of changes in the Core Telephony framework. https://developer.apple.com/documentation/coretelephony 1.isSIMInserted https://developer.apple.com/documentation/coretelephony/ctsubscriber/issiminserted A Boolean property that indicates whether a SIM is present. iOS 18.0+ iPadOS 18.0+ This value property is true if the system finds a SIM matching the Info.plist carrier information (MCC / MNC / GID1 / GID2). Is this ok to check SIM insert status, this seems must preconfig some info in the info.plist. 2.iOS26 provide CTCellularPlanStatus https://developer.apple.com/documentation/coretelephony/ctcellularplanstatus Can I use this to check SIM status?
Replies
2
Boosts
0
Views
305
Activity
Jun ’25
The proximity sensor works abnormal in some devices.
Steps to Reproduce make an outbound call cover the sensor Actual Behavior the screen won't go dark device iOS Result iphone15 17 Pass iphone14p 18.0.1 Pass iphoneXs_pro max 18.1.1 Pass iphone13pro max 18.2.1 Pass iphone16pro 18.2 Fail iphone15pro max 18.3 Fail iphone12 pro max 18.3 Fail ps: Skype has the same probelm Seems like this issue only happens on iOS18.2+ on some devices, so is there a bug for this?
Replies
3
Boosts
0
Views
409
Activity
Apr ’25
Some questions about CarPlay UI and entitlement
I read this doc and find some key info. https://developer.apple.com/carplay/documentation/CarPlay-App-Programming-Guide.pdf CarPlay app entitlements All CarPlay apps require a CarPlay app entitlement that matches your app type. To request a CarPlay app entitlement, go to http://developer.apple.com/carplay and provide information about your app, including the type of entitlement that you are requesting. You also need to agree to the CarPlay Entitlement Addendum. Apple will review your request. If your app meets the criteria for a CarPlay app, Apple will assign a CarPlay app entitlement to your Apple Developer account and notify you. But I still have questions about the old and new CarPlay. // About account permission I have 2 Apple developer accounts. Account A (normal dev account): Here our app already supports the old-style CarPlay UI. (before iOS14) And I can see there are "CarPlay Messaging App" and "CarPlay VoIP Calling App" in the "Additional Capabilities" tab in my Identifier. Account B (Enterprise account): I can see there is a "CarPlay Communication App" in the "Additional Capabilities" tab in my Identifier. But I don't know (or don't remember) if I have requested this new CarPlay entitlement for this account. Quesiton 1: If I want to refactor my current CarPlay app (from old UI to new UI [iOS14 support]), Do I need to request the CarPlay entitlement for Account A? Because I can not find the "CarPlay Communication App" in Account A portal(or via Xcode). // About New CarPlay UI In the old UI, there are just 2 buttons showing after user tap the App icon now. One is for message and the other one is for VoIP call. But I can see only one VoIP call button in the new CarPlay UI, no seperated message button. Question2: Can I add a message button? If no, how to implement a similiar user experience. Thanks.
Replies
1
Boosts
0
Views
117
Activity
Apr ’25
The app will be wake up from killed status by silent notification or not?
The app will be wake up from killed status by silent notification or not? This is a question for years, from my test. It will wake up. Here the wake up means it will call the "didFinishLaunchingWithOptions" method. But we can not see the app in the "recent apps" list after switching home-screen up. So any Apple dev can give me a detailed explain for this?
Replies
6
Boosts
0
Views
540
Activity
Mar ’25
What happened on the APNs connection after force-restart?
My VoIP app is installed on an iPad, but can't accept incoming calls by VoIP push. But it works after I force-restart this iPad. I have some customers who encountered the same cases, fixed by force-restart too. So my question is What happened on the APNs connection after force-restart? At what case, the APNs connection will be off?
Replies
2
Boosts
0
Views
418
Activity
Dec ’24
Crash in QLPreviewController on iOS18.1 +
We found some Firebase crashes in QLPreviewController on iOS18.1 +. It shows cash info in QLPreviewController that we haven't changed for some years. Please help with this. Thanks in advance. // stack info from Firebase Fatal Exception: NSInvalidArgumentException *** -[NSURL URLByAppendingPathComponent:]: component, components, or pathExtension cannot be nil. 0 CoreFoundation __exceptionPreprocess 1 libobjc.A.dylib objc_exception_throw 2 Foundation -[NSURL(NSURLPathUtilities) URLByAppendingPathComponent:] 3 QuickLookUICore +[NSURL(_QL_Utilities) _QLTemporaryFileURLWithType:filename:] 4 QuickLookUICore +[NSURL(_QL_Utilities) _QLTemporaryFileURLWithType:uuid:] 5 QuickLook -[QLPreviewController(ScreenshotsSupport) screenshotService:generatePDFRepresentationWithCompletion:] 6 ScreenshotServices __82+[SSScreenshotMetadataHarvester _grabPDFRepresentationForIdentifier:withCallback:]_block_invoke_3 7 libdispatch.dylib _dispatch_call_block_and_release 8 libdispatch.dylib _dispatch_client_callout 9 libdispatch.dylib _dispatch_main_queue_drain 10 libdispatch.dylib _dispatch_main_queue_callback_4CF 11 CoreFoundation __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ 12 CoreFoundation __CFRunLoopRun 13 CoreFoundation CFRunLoopRunSpecific 14 GraphicsServices GSEventRunModal 15 UIKitCore -[UIApplication _run] 16 UIKitCore UIApplicationMain 17 Glip main.swift - Line 13 main + 13
Replies
1
Boosts
0
Views
806
Activity
Dec ’24
AVAudioSession's "availableInputs" not update in time
// Here addObserver for routeChangeNotification func testAudioRoute() { // My app is an VoIP app, so I need to set "playAndRecord" and "allowBluetooth" try? AVAudioSession.sharedInstance().setCategory(.playAndRecord, options: [.duckOthers, .allowBluetooth, .allowBluetoothA2DP]) NotificationCenter.default.addObserver(self, selector: #selector(currentRouteChanged(noti:)), name: AVAudioSession.routeChangeNotification, object: nil) } // Print the "availableInputs" once got a notification @objc func currentRouteChanged(noti: Notification) { let availableInputs = AVAudioSession.sharedInstance().availableInputs?.compactMap({ $0.portType }) ?? [] let currentRouteInputs = AVAudioSession.sharedInstance().currentRoute.inputs.compactMap({ $0.portType }) let currentRouteOutputs = AVAudioSession.sharedInstance().currentRoute.outputs.compactMap({ $0.portType }) print("willtest: \navailableInputs=\(availableInputs), \ncurrentRouteInputs=\(currentRouteInputs), \ncurrentRouteOutputs=\(currentRouteOutputs)") /* When BT (Airpods pro 2) CONNECTTED: it will print like below when notification comes, this is correct. ---------------------------------------------------------- willtest: availableInputs=[__C.AVAudioSessionPort(_rawValue: MicrophoneBuiltIn), __C.AVAudioSessionPort(_rawValue: BluetoothHFP)], currentRouteInputs=[], currentRouteOutputs=[__C.AVAudioSessionPort(_rawValue: BluetoothA2DPOutput)] ---------------------------------------------------------- When BT (Airpods pro 2) DISCONNECTTED: it will print like below when notification comes, this is wrong. ---------------------------------------------------------- availableInputs=[__C.AVAudioSessionPort(_rawValue: MicrophoneBuiltIn), __C.AVAudioSessionPort(_rawValue: BluetoothHFP)], currentRouteInputs=[], currentRouteOutputs=[__C.AVAudioSessionPort(_rawValue: Speaker)] */ } So my question here is: Why does the "availableInputs" still contain the "C.AVAudioSessionPort(_rawValue: BluetoothHFP)" item even though I have already disconnected the BT device? (Put AirPods in the case.) BTW, if I tap the "Manual" button once I disconnected the BT, it also prints the "wrong" value for "availableInputs", and it will become normal after about 3~4 seconds.
Replies
4
Boosts
0
Views
603
Activity
Dec ’24