Weemo getCallId retorna 0
Pergunta
Eu estou trabalhando com o Weemo sdk e até agora ele está olhando muito promissor.No entanto, eu ter encontrado um problema ao escrever aplicativo de acordo com ele.Eu registrei um CallStatusChanged ouvinte para o eventbus e eu não tenho nenhum problema receber o evento no receptor quando o chamador.No entanto, a WeemoCall objeto não é bem construído e a getCallId() método que retorna 0 (veja o código a seguir ).Para o meu entendimento do evento.getCaller retornará o id do chamador para que possamos último em usá-lo para estabelecer uma chamada.alguém pode me ajudar a resolver isso ?Anexei uma imagem do objeto que tirei durante a depurando.
@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);
}
Solução
O WeemoCall.getCallId()
método retorna um int que é usado internamente como um índice.
Desta forma, a primeira chamada terá sua getCallId()
é igual a 0
, o segundo será igual a 1, e assim por diante e assim por diante.
Assim, a fim de obter o correspondente WeemoCall objeto em sua segunda atividade, você pode simplesmente fazer o seguinte:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int callId = savedInstanceState.getInt(INCOMING_CALL_ID_EXTRA);
WeemoCall call = Weemo.instance().getCall(callId);
}
Você também pode usar esse método que retornará o atual WeemoCall:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WeemoCall call = Weemo.instance().getCurrentCall();
}