Weemo GetCallID restituisce 0
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);
}
.
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();
}
.