#android
#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 или мне нужно каким-то другим способом получить доступ к дочерним элементам конференц-связи? Буду признателен за любую помощь!
Ответ №1:
Только что ответил на мой собственный вопрос. Если кто-нибудь снова столкнется с этой невероятно неясной проблемой, проблема в том, что Android требуется секунда, чтобы фактически добавить вызовы в качестве дочерних элементов, даже если новый конференц-вызов регистрируется немедленно. Если вы создаете обратный вызов с
public void onChildrenChanged(Call call, List<Call> children) {
super.onChildrenChanged(call, children);
}
вы увидите, что эти новые дочерние элементы добавляются, и затем сможете запустить .getChildren()
этот объект конференц-вызова.