2013-02-25 2 views
1

У меня проблема в прослушивании состояния телефона. Я хочу позвонить одному activity из onCallStateChanged события. Когда я получаю входящий звонок, я хочу позвонить одному activity и обработать транзакцию текущего телефона (который я получаю по входящему звонку). Но я не мог пойти в ShowPhoneStateDialogActivity, используя следующий код. Пожалуйста, исправьте меня, что такое моя ошибка. Заранее спасибо. Мой код,Android Phone state прослушиватель

case TelephonyManager.CALL_STATE_RINGING: 
       Log.d("PHONE:", "RINGING"); 
       Log.w("Call STATE:", "RINGING"); 
       if (!sess.getCallActive()) { 
        sess.setCallActive(true); 
        sess.setActiveMobileNo(incomingCallNumber); 
        this.endActivecall(); 
        Intent intent = new Intent(context,ShowPhoneStateDialogActivity.class).setAction("incomingNumber"); 
        intent.putExtra("Phoneno", incomingCallNumber); 
        Log.i("CURRENT ACTIVITY",this.getClass().getSimpleName()); 
        Log.i("CURRENT CONTEXT","Context:"+context); 
        //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startService(intent); 
        break; 
       } else { 
        this.endActivecall(); 
       } 
       break; 

И endActivecall функция,

public void endActivecall() { 
     TelephonyManager telephony = (TelephonyManager) context 
       .getSystemService(Context.TELEPHONY_SERVICE); 
     try { 
      Class c = Class.forName(telephony.getClass().getName()); 
      Method m = c.getDeclaredMethod("getITelephony"); 
      m.setAccessible(true); 
      telephonyService = (ITelephony) m.invoke(telephony); 
      // telephonyService.silenceRinger(); 
      telephonyService.endCall(); 
      Log.i("CALL STATE ACTION:", "Call end"); 
      Log.i("ACTIVE_MOBILENO:", sess.getActiveMobileNo()); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

ответ

2

Вместо кода context.startService(intent), попробуйте позвонить context.startActivity(intent) вместо этого.

+0

Да, теперь он работает. Большое спасибо –