2016-09-30 112 views
0

我已成功將pjsip庫與Android整合。我也接到來電並打出電話。唯一的事情是,我需要基於來電呼叫事件。例如,當有來電時,我需要先向用戶顯示一個選項,以便接聽電話,當按下該按鈕時,我需要接聽電話。但是現在,如果我把代碼放到一個活動中去選擇調用,那麼這個方法就會失敗。如果我在onIncomingCall中直接調用answerIncomingCall(),則該調用完全由程序本身而不是Handler.post來回答。如何攔截來電pjsip

有人可以幫助我如何做到這一點

@Override 
     public void onIncomingCall(OnIncomingCallParam prm) { 
      System.out.println("*** Incoming call....... " + prm.getCallId()); 

      onIncomingCallParam = prm; 

      System.out.println("*** Incoming call....... 1"); 

      Handler mainHandler = new Handler(context.getMainLooper()); 

      Runnable runnable = new Runnable() { 
       @Override 
       public void run() { 
        Log.d(TAG,"Sip callback=>"+sipCallbacks); 

        if(sipCallbacks != null) { 
         sipCallbacks.onIncomingCall(); 
        } 
       } 
      }; 

      mainHandler.post(runnable); 

      try { 
       Thread.sleep(10000); 
      } catch (InterruptedException ie) { 
       ie.printStackTrace(); 
      } 

      System.out.println("*** Incoming call....... 2"); 

     } 

     public void answerIncomingCall() { 
      Call call = new MyCall(acc, onIncomingCallParam.getCallId()); 
      CallOpParam callOpParam = new CallOpParam(); 
      callOpParam.setStatusCode(pjsip_status_code.PJSIP_SC_OK); 

      try { 
       call.answer(callOpParam); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
+0

「該方法失敗」 - 日誌對此有何評論? – user1506104

+0

我有問題,對於iOS – Eesha

回答

0

你必須回答「onIncomingCall」內部呼叫。如果您想要顯示一個對話框讓用戶接受或拒絕該呼叫,則必須立即用180(響鈴)接聽來電。