我正试图控制来自我的应用程序的电话。
感谢此帖Blocking Incoming call - Call Control in Android - Question Stackoverflow和this。我可以取消来电/去电
我注册了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();
}
}
这有效,但我想在传入和传出呼叫之间做出区别,我不知道如何。有人可以帮忙吗?