質問

私はweemo sdkと一緒に働いていて、今まで非常に有望に見えます。しかし、私はそれに基づいてアプリを書いている間に1つの問題に遭遇しました。CallStatusChangedリスナーをEventBusに登録し、発信者が呼び出すときに受信側でイベントを受信する問題はありません。ただし、WeemoCallオブジェクトは十分に構築されておらず、getCallId()メソッドは0を返します(次のコードを参照)。私の理解のためにEvent.GetCallerは呼び出し元のIDを返し、それを後者にして呼び出しを確立することができます。誰もがこれを解決するのを手伝ってくれる?デバッグ中に撮ったコールオブジェクトのスクリーンショットを添付しました。

@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説明

役に立ちましたか?

解決

WeemoCall.getCallId()メソッドは、インデックスとして内部的に使用されているintを返します。
このように、最初の呼び出しはgetCallId()0に等しく、2番目の呼び出しは1に等しくなります。

それでは、対応するweemocallオブジェクトを2番目のアクティビティで取得するために、次の手順を実行できます。

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

現在のweemocallを返すこのメソッドを使用することもできます。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top