0

我正在尝试控制来自我的应用程序的呼叫。

感谢这篇文章Blocking Incoming call - Call Control in Android - Question Stackoverflow这个。我能够取消来电/去电

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

在 Manifest 中定义了一个接收者:

    <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();
    }

}

这可行,但我想区分来电和去电,但我不知道如何。任何人都可以帮忙吗?

4

1 回答 1

0

在清单中,用于拨出呼叫的接收器标记操作,

参考这个

于 2012-07-18T11:05:37.673 回答