2012-07-18 115 views
0

我试图控制来自我的应用程序的呼叫。阻止/取消阻止呼叫。传入/传出之间的差异

多亏了这个帖子Blocking Incoming call - Call Control in Android - Question Stackoverflowthis。我能够取消入局/出局呼叫

我注册ITelephony类(com.android.internal.telephony.ITelephony)

定义在清单的接收器:

<receiver android:name=".PhoneCallReceiver" > 
     <intent-filter android:priority="100" > 
      <action android:name="android.intent.action.PHONE_STATE" /> 
     </intent-filter> 
    </receiver> 

而在PhoneCallReceiver我重写OnRecive方法,使用反射实例ITelephony。

@Override 
public void onReceive(Context context, Intent intent) { 
    Log.v(TAG, "Receving...."); 
    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(); 
     if (!(InfoAct.ismodguiaon(context))){ 
      telephonyService.endCall(); 
     } else { 

     } 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

这有效,但我想要区分传入和传出的呼叫,我不知道如何。任何人都可以帮忙

回答

0

在清单中,呼出接收标签的动作 ,

参考this

+0

正是我一直在寻找。谢谢! – Zartch 2012-07-18 12:06:44