Domanda

Sto lavorando con lo SDK Weemo e fino ad ora sembra molto promettente.Tuttavia ho riscontrato un problema durante la scrittura di app basata su di esso.Ho registrato un ascoltatore callstatuschanged sull'eventbus e non ho problemi a ricevere l'evento sul ricevitore quando il chiamante chiama.Tuttavia, l'oggetto Weemocall non è ben costruito e il metodo GetCallID () restituisce 0 (vedere il seguente codice).A mio comprensione Event.GetCaller restituirà l'ID del chiamante in modo da poterlo utilizzare per stabilirlo per stabilire una chiamata.Qualcuno può aiutarmi a risolvere questo?Ho allegato uno screenshot dell'oggetto call che ho preso durante il debug.

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

Inserire l'immagine Descrizione qui

È stato utile?

Soluzione

Il metodo WeemoCall.getCallId() restituisce un INT che viene utilizzato internamente come indice.
In questo modo, la prima chiamata avrà il suo getCallId() equivale a 0, il secondo avrà equivale a 1, e così via e così via.

Quindi, per ottenere il corrispondente oggetto WeeMocall sulla tua seconda attività, puoi semplicemente fare quanto segue:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int callId = savedInstanceState.getInt(INCOMING_CALL_ID_EXTRA);
    WeemoCall call = Weemo.instance().getCall(callId);
}
.

È inoltre possibile utilizzare questo metodo che restituirà l'attuale weemocall:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WeemoCall call = Weemo.instance().getCurrentCall();
}
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top