Thanks for your reply. But if the user taps any hardware to trigger an action, the app will receive it.
How are you receiving these events from hardware or from the call screen UI? For example, if you're on the lock screen in a call and the user taps "end call", how is your app receiving that event from the system?
I ask, because the way I'd expect this to behave and the way our sample app behaves is that the system “directly” calls "performEndCallAction:" on your CXProviderDelegate, exactly what you seem to be describing.
Then the app will create a CXAction to the CallKit, here the app will print the calling of this method:
CXCallController.request(CXTransaction) is how your app asks CallKit to perform action on your app’s behavior. For example, Speakerbox uses it to implement its own interface for starting, ending, and muting calls. However, this is only used for implementing the in-app UI. The same actions in the call screen UI will be delivered directly through the provider delegate.
__
Kevin Elliott
DTS Engineer, CoreOS/Hardware