我想知道是否有可能,在电话通话中,将当前通话与另一个由Flutter开发的应用程序进行的通话合并?在通话过程中,我希望能够从我的应用程序添加另一个呼叫,并自动合并两个呼叫。我找不到一个带有电话控制的Flat包。谨致问候
u1ehiz5o1#
我认为对于iOS,最好使用CallKit framework来处理呼叫管理,而在Android中,最好使用Android TelephonyManager和Call APIs来以编程方式控制电话呼叫,所以让我用一个例子来展示,但要注意,这只是一个基本的例子来演示呼叫合并的概念!!!在iOS和Objective-C中
iOS
CallKit framework
Android
Android TelephonyManager
Call APIs
Objective-C
#import <CallKit/CallKit.h> @interface CallMergeManager : NSObject @property (nonatomic, strong) CXCallController *callController; @end @implementation CallMergeManager - (instancetype)init { self = [super init]; if (self) { _callController = [[CXCallController alloc] init]; } return self; } - (void)mergeCalls { CXSetMutedCallAction *mergeAction = [[CXSetMutedCallAction alloc] initWithCallUUID:[NSUUID UUID] muted:NO]; CXTransaction *transaction = [[CXTransaction alloc] initWithAction:mergeAction]; [self.callController requestTransaction:transaction completion:^(NSError * _Nullable error) { if (error) { NSLog(@"merging calls error: %@", error); } }]; } @end
字符串在Android和java中,类似这样:
java
public class CallMergeManager { private TelephonyManager telephonyManager; public CallMergeManager(Context context) { telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); } public void mergeCalls() { telephonyManager.mergeCalls(); } }
型现在,在Flutter中,您可以定义一个平台通道来与它们(iOS和Android)的本机代码进行通信,如下所示
Flutter
import 'package:flutter/services.dart'; final MethodChannel _channel = MethodChannel('call_merge_channel'); Future<void> mergeCalls() async { try { await _channel.invokeMethod('mergeCalls'); } catch (e) { print('merging calls error: $e'); } }
型从Flutter调用mergeCalls触发呼叫合并:
mergeCalls
mergeCalls();
型祝你好运!
1条答案
按热度按时间u1ehiz5o1#
我认为对于
iOS
,最好使用CallKit framework
来处理呼叫管理,而在Android
中,最好使用Android TelephonyManager
和Call APIs
来以编程方式控制电话呼叫,所以让我用一个例子来展示,但要注意,这只是一个基本的例子来演示呼叫合并的概念!!!在
iOS
和Objective-C
中字符串
在
Android
和java
中,类似这样:型
现在,在
Flutter
中,您可以定义一个平台通道来与它们(iOS和Android)的本机代码进行通信,如下所示型
从
Flutter
调用mergeCalls
触发呼叫合并:型
祝你好运!