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();
}