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);
}
Решение
А 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();
}