Weemo getCallId 返回 0
题
我正在使用 Weemo sdk,到目前为止它看起来非常有前途。然而,我在基于它编写应用程序时遇到了一个问题。我已经向事件总线注册了一个 CallStatusChanged 侦听器,并且当调用者呼叫时,我在接收器上接收事件没有问题。然而,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);
}
解决方案
这 WeemoCall.getCallId()
方法返回一个在内部用作索引的 int。
这样,第一次调用就会有它的 getCallId()
等于 0
, ,第二个将等于 1,依此类推。
因此,为了在第二个 Activity 上获取相应的 WeemoCall 对象,您只需执行以下操作:
@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();
}
不隶属于 StackOverflow