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

enter image description here

¿Fue útil?

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();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top