我正在尝试控制来自我的应用程序的呼叫。
感谢这篇文章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();
}
}
这可行,但我想区分来电和去电,但我不知道如何。任何人都可以帮忙吗?