首页 > 解决方案 > 如何获取 Android 电话会议的子项?

问题描述

我正在构建一个自定义的 Android 通话界面,需要获取电话会议的子通话对象来管理合并通话。

这是处理新调用的代码。我假设如果添加的新呼叫代表电话会议,那么我应该能够访问这些子呼叫并挂断单个呼叫、拆分单个呼叫、为每个子呼叫注册回调等。

public void onCallAdded(Call call) {
    Log.i("MyCallService", "Call state: " + call.getState());

    if(call.getDetails().hasProperty(Call.Details.PROPERTY_CONFERENCE)) {
            Log.i("MyCallService", "Conference call entered with " + call.getChildren().size()
                    + " participants.");
               return;
        }
    //...
}

出于某种原因,无论合并了多少调用,call.getChildren().size()总是zero. 这是Android的问题还是我需要其他方式来访问电话会议的孩子?任何帮助将不胜感激!

标签: android

解决方案


刚刚回答了我自己的问题。如果有人再次遇到这个令人难以置信的模糊问题,问题是即使立即注册了新的电话会议,Android 也需要一秒钟才能将电话实际添加为子电话。如果您创建一个回调

public void onChildrenChanged(Call call, List<Call> children) {
    super.onChildrenChanged(call, children);
}

您将看到添加了这些新子项,然后可以.getChildren()在该电话会议对象上运行。


推荐阅读