I want to disconnect incoming call programmatically, I searched regarding this, I found so many links on stack overflow. I tried all of them, but none of them worked
I created ITelephony class in package com.android.internal.telephony
This is the code in ITelephony class
The code I used is...
public class Incommingcall extends BroadcastReceiver{
TelephonyManager manager;
int callstate;
private ITelephony telephonyService;
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
try{
manager = (TelephonyManager)context.getSystemService(Service.TELEPHONY_SERVICE);
callstate = manager.getCallState();
if(callstate == TelephonyManager.CALL_STATE_RINGING){
Log.i("IncommingCall","Call is Ringing");
Class c = Class.forName(manager.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
Log.i("m= ", ""+m);
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(manager);
telephonyService.endCall();
Log.i("IncommingCall","Call Disconnected");
}else if (callstate == TelephonyManager.CALL_STATE_IDLE) {
}else if(callstate == TelephonyManager.CALL_STATE_OFFHOOK){
}
}catch(Exception e){
}
}
}
In the manifest file
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
The Logcat I got is...
08-04 13:57:48.686: I/IncommingCall(29302): Call is Ringing
08-04 13:57:48.686: I/m=(29302): private com.android.internal.telephony.ITelephony android.telephony.TelephonyManager.getITelephony()