Вопрос

Я работаю с Weemo SDK, и на данный момент он выглядит очень многообещающе.Однако я столкнулся с одной проблемой при написании приложения на его основе.Я зарегистрировал прослушиватель CallStatusChanged на шине событий, и у меня нет проблем с получением события на приемнике, когда вызывающий абонент звонит.Однако объект WeemoCall сконструирован неправильно, и метод getCallId() возвращает 0 (см. следующий код).Насколько я понимаю, event.getCaller вернет идентификатор вызывающего абонента, чтобы мы могли позже использовать его для установления вызова.может ли кто-нибудь помочь мне решить эту проблему?Я приложил снимок экрана объекта вызова, который я сделал во время отладки.

@WeemoEventListener
public void onCallStatusChanged(final CallStatusChangedEvent event){
    String msg = "";
    Log.i(TAG,"onCallStatusChanged" + event.toString());
    switch (event.getCallStatus()){
        case CREATED:
            msg = "call created";
            break;
    ...
        case RINGING:
            msg = "call is ringing";
            Intent i = new Intent(this, VideoCallingActivity.class);
            i.putExtra(INCOMING_CALL_ID_EXTRA, event.getCall().getCallId()); //getCallId returns 0 ?!
            startActivity(i);
            break;
    ...
    }
    Log.i(TAG,msg);
}

enter image description here

Это было полезно?

Решение

А WeemoCall.getCallId() метод возвращает целое число, которое используется внутри в качестве индекса.
Таким образом, первый вызов будет иметь свое значение. getCallId() равно 0, у второго оно будет равно 1 и так далее и тому подобное.

Итак, чтобы получить соответствующий объект WeemoCall для вашего второго действия, вы можете просто сделать следующее:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int callId = savedInstanceState.getInt(INCOMING_CALL_ID_EXTRA);
    WeemoCall call = Weemo.instance().getCall(callId);
}

Вы также можете использовать этот метод, который вернет текущий WeemoCall:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WeemoCall call = Weemo.instance().getCurrentCall();
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top