سؤال

أنا أعمل مع ويمو سك وحتى الآن أنها تبحث واعدة جدا.ومع ذلك فقد واجهت مشكلة واحدة أثناء كتابة التطبيق على أساس ذلك.لقد سجلت مستمع كالستاتوسشانجيد إلى إيفنتبوس وليس لدي أي مشكلة تلقي الحدث على المتلقي عندما يدعو المتصل.ومع ذلك الكائن ويموكال ليست شيدت بشكل جيد وطريقة جيتكاليد () إرجاع 0 (انظر التعليمات البرمجية التالية).إلى فهمي الحدث.جيتكالر سيعود معرف المتصل حتى نتمكن من الأخير على استخدامه لإنشاء مكالمة.يمكن لأي شخص مساعدتي في حل هذه ?لقد أرفقت لقطة شاشة لكائن المكالمة الذي أخذته أثناء التصحيح.

@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

هل كانت مفيدة؟

المحلول

ال WeemoCall.getCallId() طريقة بإرجاع كثافة العمليات التي يتم استخدامها داخليا كمؤشر.
بهذه الطريقة ، سيكون للمكالمة الأولى getCallId() يساوي 0, ، والثاني سيكون يساوي 1 ، وهلم جرا وهكذا دواليك.

لذلك ، من أجل الحصول على كائن ويموكال المقابلة على النشاط الثاني الخاص بك ، يمكنك ببساطة القيام بما يلي:

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

يمكنك أيضا استخدام هذه الطريقة التي ستعيد ويموكال الحالي:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WeemoCall call = Weemo.instance().getCurrentCall();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top