如何在其他呼叫正在运行时以编程方式进行呼叫(电话会议)

我的要求是这样的,假设我在那个时候拨打了一个号码,我想用Programetically拨打另一个号码。 到目前为止,我所做的是:我已经能够打电话给特定的号码。 例如,假设我正在呼叫号码123,并在1分钟后与Alarm Manger我有触发事件调用另一个号码456,这样做了!

 Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:456")); startActivity(intent); 

我正在使用这种意图来打电话,现在我可以看到我的手机上要求合并呼叫的屏幕 在这里输入图像说明

在这个图片中,你可以看到一个合并调用的button。 现在,当用户点击合并它将合并所有3个电话,我的查询是我想要做的Programetically不与用户界面。

你的问题似乎很有趣,所以我开始挖掘Android的源。 这是我发现的:

您发布的图片中的活动称为InCallUI

当你开始四处看时,你会发现在463行有InCallPresenter :

 final boolean canMerge = activeCall.can(Capabilities.MERGE_CALLS); 

然后在472:

 CallCommandClient.getInstance().merge(); 

当你检查CallCommandClient中的merge()方法时,你会发现它使用ICallCommandService接口,我认为你在哪里寻找:)

CallCommandClient的初始化位于第193行的CallHandlerService中 。

希望这有帮助,祝你好运。

PS。 我列出的API大多是Android内部的东西。 您可能必须使用reflection来调用它,否则它可能根本不可能 – 它可能对您的应用程序而言是不可访问的,因为它没有标记为系统应用程序。

Android API不支持调用合并工具,你可以看到这个线程。 https://groups.google.com/forum/?fromgroups#!searchin/android-developers/conference $ 20call / android-developers / 6OXDEe0tCks / 8cuKdW1J9b8J但是你可以做的是使用aidl打开手机的呼叫板屏幕,用户可以添加另一个呼叫或合并呼叫。

您无法使用智能手机pipe理会议。 你需要一个中间服务,可以为你做到这一点。 您可以使用CCXML编程会议pipe理器。

Voxeo为CCXML实现提供了一个很好的托pipe平台,您可以查看他们关于如何设置会议的文档 。 在“学习CCXML 1.0 \ CCXML 1.0中的多方会议”中有例子。

您可以在Voxeo上免费开发和testing,只有在投入生产时才会开始收费。 另一种select是Twillio。

以下是您如何在其平台上编程电话会议的链接。

检查链接,你会得到有用的信息。 #礼貌 – SO

Afaik,SDK中没有以编程方式进行合并调用的API。

你必须在RIL (Radio Interface Layer)进行电话会议。

Android的无线电接口层(RIL)提供了Android电话服务(android.telephony)和无线电硬件之间的抽象层。 RIL是无线电不可知论的,包括对全球移动通信系统(GSM)无线电的支持。

看到这里: http : //www.kandroid.org/online-pdk/guide/telephony.html

更新

调制解调器代码如何与Android代码进行通信

http://fabiensanglard.net/cellphoneModem/index2.php

http://www.e-consystems.com/blog/android/?p=498

所以你必须在套接字中写AT调制解调器命令,然后rild调用callback到供应商库,然后供应商库依次委托给无线固件。

在android中没有api会议电话,你可能想玩根系统,完成你的工作。

正式的android不提供任何电话会议API。 你可以在这里学习更多的根访问玩法

http://www.kandroid.org/online-pdk/guide/telephony.html