Weemo getCallId devuelve 0
Pregunta
Estoy trabajando con el Weemo sdk y hasta ahora se ve muy prometedor.Sin embargo me he encontrado con un problema, mientras que la escritura de aplicaciones basadas en él.He registrado un CallStatusChanged oyente a la eventbus y no tengo ningún problema en recibir el evento en el receptor cuando la persona llama.Sin embargo, el WeemoCall objeto no está bien construido y el getCallId() método devuelve 0 (vea el código siguiente ).A mi entender evento.getCaller devolverá el id de la persona que llama para que podamos último en usarlo para establecer una llamada.alguien me puede ayudar a resolver esto ?He adjuntado una captura de pantalla de la llamada objeto tomé durante la depuración.
@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);
}
Solución
El WeemoCall.getCallId()
el método devuelve un valor int que se utilizan internamente como un índice.
De esta manera, la primera convocatoria tendrá su getCallId()
es igual a 0
, el segundo será igual a 1, y así sucesivamente y así sucesivamente.
Así, con el fin de obtener la correspondiente WeemoCall objeto en su segunda actividad, usted puede simplemente hacer lo siguiente:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int callId = savedInstanceState.getInt(INCOMING_CALL_ID_EXTRA);
WeemoCall call = Weemo.instance().getCall(callId);
}
También puede utilizar este método que devolverá el actual WeemoCall:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WeemoCall call = Weemo.instance().getCurrentCall();
}