Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios VOIP呼叫断开后如何关闭Callkit屏幕_Ios_Voip_Pjsip_Callkit_Pushkit - Fatal编程技术网

Ios VOIP呼叫断开后如何关闭Callkit屏幕

Ios VOIP呼叫断开后如何关闭Callkit屏幕,ios,voip,pjsip,callkit,pushkit,Ios,Voip,Pjsip,Callkit,Pushkit,一旦voip呼叫被源或目标断开,我将尝试删除callkit屏幕 我用了这个密码 CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:[NSUUID UUID]]; CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()]; requestTransaction:[

一旦voip呼叫被源或目标断开,我将尝试删除callkit屏幕

我用了这个密码

CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:[NSUUID UUID]];
CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()];
requestTransaction:[CXTransaction transactionWithActions:nil completion:completion]];

但关闭呼叫包是行不通的。有人能帮我解决这个问题吗?

您必须将您的
CXTransaction
CXEndCallAction
传递到您的
requestTransaction

首先,在
initwithcalluid
中,您必须传递当前呼叫
nsuid
。然后,您可以在
CXCallController
上调用
requestTransaction
,并将
[CXTransaction Transaction WithActions:@[endaction]
传递给它,而不是像您那样将
nil
传递给它

CXEndCallAction *endaction = [[CXEndCallAction alloc] initWithCallUUID:[NSUUID UUID]]; // your current call UUID
CXCallController *callController = [[CXCallController alloc] initWithQueue:dispatch_get_main_queue()];
[callController requestTransaction:[CXTransaction transactionWithActions:@[endaction]] completion:completion];

您可以在调用断开连接方法时使用下面的方法

@property (nonatomic, strong) CXCallController *callKitCallController;

- (void)performEndCallActionWithUUID:(NSUUID *)uuid {
    if (uuid == nil) {
        return;
    }

    CXEndCallAction *endCallAction = [[CXEndCallAction alloc] initWithCallUUID:uuid];
    CXTransaction *transaction = [[CXTransaction alloc] initWithAction:endCallAction];

    [self.callKitCallController requestTransaction:transaction completion:^(NSError *error) {
        if (error) {
            NSLog(@"EndCallAction transaction request failed: %@", [error localizedDescription]);
        }
        else {
            NSLog(@"EndCallAction transaction request successful");
        }
    }];
}

您好,这个方法可以工作吗:provider.reportCall(使用:calluid,endedAt:Date(),原因:.remoteEnded)