我的要求是这样的:假设我当时正在调用一个号码,并且我想以编程方式调用另一个号码。到目前为止,我所做的是:我可以在某些调用已经进行时调用特定号码。例如,假设我正在调用 123 号码,并且在 1 分钟后(通过使用 Alarm Manger
我触发了一个事件来调用另一个号码 456,然后就完成了!
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:456"));
startActivity(intent);
我正在使用这样的 Intent 打电话,现在我可以通过一个按钮在手机上看到屏幕以合并通话:
在此图像中,您可以看到合并调用的按钮。现在,当用户单击合并时,它将合并所有 3 个调用。我想以编程方式完成,而不是使用用户界面。
最佳答案
您的问题似乎很有趣,因此我开始研究 Android Source。这是我发现的:
您发布的图片中的 Activity 名为InCallUI
当您开始环顾四周时,您会发现 InCallPresenter在第 463 行有:
final boolean canMerge = activeCall.can(Capabilities.MERGE_CALLS);
然后在 472:
CallCommandClient.getInstance().merge();
当您检查 CallCommandClient 中的 merge() 方法时你会发现它使用 ICallCommandService我认为这是你在寻找的界面:)
CallCommandClient 的初始化位于 CallHandlerService在第 193 行附近。
希望这会有所帮助并祝你好运。
PS。我列出的 API 大多是 Android 内部的东西。您可能必须使用反射来调用它,或者它可能根本不可能 - 您的应用可能无法访问它,因为它没有被标记为系统应用。
关于android - 如何在其他调用运行时以编程方式合并调用(电话 session ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20951638/