In the InitConfig class, even if you specify enableCallKit as false, the initialization of SDKCallKitManager class will still occur with the CXProvider class initialization and delegate.
Therefore, even in cases where you want to prevent the initialization of the CallKit initialization, the initialization and delegate of the CXProvider class in the SDKCallKitManager class will always occur.
It would be appreciated if the initialization process of the SDKCallKitManager class, which has been initialized with the InitConfig class, would take into account the enableCallKit value specified.
・SDK version
Zoom Video SDK for Flutter
Version 1.11.2
flutter-zoom-video-sdk-6.0.2-1.11.2.zip
Hi @r.yamaguchi,
I have checked with our engineers on this and understood from them that we will not initialize the CXProvider class and delegate when the enableCallKit is set as false.
(instancetype)init {
self = [super init];
if (self) {
if (enableCallKit) {
if (@available(iOS 10.0, *)) {
CXProviderConfiguration *providerConfig = [[CXProviderConfiguration alloc] initWithLocalizedName:@"VideoSDK"];
self.provider = [[CXProvider alloc] initWithConfiguration:providerConfig];
[self.provider setDelegate:self queue:nil];
self.callController = [[CXCallController alloc] init];
}
}
}
return self;
}
Thank you.
Thank you for your reply.
There seems to be a misunderstanding.
After initializing the SDKCallKitManager class, enableCallKit is set to false.
Therefore, if enableCallKit specified in the InitConfig class is False, please do not execute the following process.
(instancetype)init {
self = [super init];
if (self) {
if (enableCallKit) {
if (@available(iOS 10.0, *)) {
CXProviderConfiguration *providerConfig = [[CXProviderConfiguration alloc] initWithLocalizedName:@"VideoSDK"];
self.provider = [[CXProvider alloc] initWithConfiguration:providerConfig];
[self.provider setDelegate:self queue:nil];
self.callController = [[CXCallController alloc] init];
}
}
}
return self;
}
Hey @r.yamaguchi,
I have checked on my end that if enableCallkit is false, then the SDK don’t initialize CXProvider and its delegate. Perhaps can you send me a video on how you are able to replicate this behaviour for me to take a look at?
Thank you.
Hello
Since it takes time to shoot a video, please check it from the following points.
To set the enableCallKit variable to false, call the setEnableCallKit function.
However, to call the setEnableCallKit function, you need to call it in the init function.
Therefore, you cannot call the init function with the enableCallKit variable set to false.
■File
flutter-zoom-video-sdk-6.0.2-1.11.2.zip
ios\Classes\PictureInPicture\SDKCallKitManager.m
■Line
33~51
■Code
- (instancetype)init {
self = [super init];
if (self) {
if (enableCallKit) {
if (@available(iOS 10.0, *)) {
CXProviderConfiguration *providerConfig = [[CXProviderConfiguration alloc] initWithLocalizedName:@“VideoSDK”];
self.provider = [[CXProvider alloc] initWithConfiguration:providerConfig];
[self.provider setDelegate:self queue:nil];
self.callController = [[CXCallController alloc] init];
}
}
}
return self;
}
- (void)setEnableCallKit: (BOOL)enable {
enableCallKit = enable;
}
Hello @r.yamaguchi,
The enableCallKit should be set under the InitConfig here actually. Can I kindly get you to try it out and let me know if you still faced the same issue?
Thank you.