Frage

Ich arbeite mit dem Weemo SDK und bis jetzt sieht es sehr vielversprechend aus.Allerdings bin ich beim Schreiben einer darauf basierenden App auf ein Problem gestoßen.Ich habe einen CallStatusChanged-Listener für den Eventbus registriert und habe kein Problem damit, das Ereignis auf dem Empfänger zu empfangen, wenn der Anrufer anruft.Allerdings ist das WeemoCall-Objekt nicht gut konstruiert und die Methode getCallId() gibt 0 zurück (siehe den folgenden Code).Soweit ich weiß, gibt event.getCaller die ID des Anrufers zurück, damit wir sie später zum Aufbau eines Anrufs verwenden können.Kann mir jemand helfen, das zu lösen?Ich habe einen Screenshot des Aufrufobjekts angehängt, den ich während des Debuggens erstellt habe.

@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

War es hilfreich?

Lösung

Der WeemoCall.getCallId() Die Methode gibt einen int zurück, der intern als Index verwendet wird.
Auf diese Weise hat der erste Anruf seinen Zweck getCallId() ist gleich 0, der zweite hat den Wert 1 und so weiter und so weiter.

Um also das entsprechende WeemoCall-Objekt bei Ihrer zweiten Aktivität zu erhalten, können Sie einfach Folgendes tun:

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

Sie können auch diese Methode verwenden, die den aktuellen WeemoCall zurückgibt:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WeemoCall call = Weemo.instance().getCurrentCall();
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top