我正在建立一个自定义的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的问题,还是我需要采取其他方法来访问电话会议的孩子?任何帮助将不胜感激!
答案 0 :(得分:0)
回答了我自己的问题。如果有人再次遇到这个难以理解的问题,那么问题是,即使立即注册了新的电话会议,Android也会花一秒钟的时间将呼叫实际添加为子代。如果您使用
创建回调public class MainActivity extends AppCompatActivity implements AudioManager.OnAudioFocusChangeListener
您将看到已添加了新的子代,然后可以在该电话会议对象上运行public void onChildrenChanged(Call call, List<Call> children) {
super.onChildrenChanged(call, children);
}
。