Weemo getCallId возвращает 0

Я работаю с 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);
}

1 ответ

Решение

WeemoCall.getCallId() Метод возвращает int, который используется внутри как индекс.
Таким образом, первый звонок 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();
}
Другие вопросы по тегам