Weemo getCallId renvoie 0
Question
Je travaille avec le SDK Weemo et jusqu'à présent, cela semble très prometteur.Cependant, j'ai rencontré un problème lors de l'écriture d'une application basée sur celui-ci.J'ai enregistré un écouteur CallStatusChanged sur le bus d'événements et je n'ai aucun problème à recevoir l'événement sur le récepteur lorsque l'appelant appelle.Cependant l'objet WeemoCall n'est pas bien construit et la méthode getCallId() renvoie 0 (voir le code suivant).À ma connaissance, event.getCaller renverra l'identifiant de l'appelant afin que nous puissions l'utiliser plus tard pour établir un appel.quelqu'un peut-il m'aider à résoudre ce problème ?J'ai joint une capture d'écran de l'objet d'appel que j'ai pris lors du débogage.
@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);
}
La solution
Le WeemoCall.getCallId()
La méthode renvoie un int qui est utilisé en interne comme index.
De cette façon, le premier appel aura son getCallId()
est égal à 0
, le second l'aura égal à 1, et ainsi de suite.
Ainsi, afin d'obtenir l'objet WeemoCall correspondant sur votre deuxième activité, vous pouvez simplement procéder comme suit :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int callId = savedInstanceState.getInt(INCOMING_CALL_ID_EXTRA);
WeemoCall call = Weemo.instance().getCall(callId);
}
Vous pouvez également utiliser cette méthode qui renverra le WeemoCall actuel :
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WeemoCall call = Weemo.instance().getCurrentCall();
}