Wednesday 3 August 2011

Accept - Reject Call

You can programmatically Accept or Reject Call and check if the call is active or not.

public static void callAnswer(Context context) throws Exception{
        try{
            TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
            Class c = Class.forName(manager.getClass().getName());
            Method m = c.getDeclaredMethod("getITelephony");
            m.setAccessible(true);
            ITelephony telephony = (ITelephony)m.invoke(manager);
            telephony.answerRingingCall();
        }catch(Exception e){
            Log.d("Exception caught", e.getMessage());          
        }
}

public static void callReject(Context context) throws Exception{
        try{
            TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
            Class c = Class.forName(manager.getClass().getName());
            Method m = c.getDeclaredMethod("getITelephony");
            m.setAccessible(true);
            ITelephony telephony = (ITelephony)m.invoke(manager);
            telephony.endCall();
        } catch(Exception e){
            Log.d("",e.getMessage());
        }
}

public static boolean isCallActive(Context context){
        AudioManager manager = (AudioManager)context.getSystemService(Context.AUDIO_SERVICE);
        if(manager.getMode()==AudioManager.MODE_IN_CALL){
            return true;
        }
        else{
            return false;
        }
}

Note: It worked for me till the platform 2.3.3.You need to include this file for this:


No comments:

Post a Comment