2012-07-18 84 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