J'utilise le code suivant :
public void PhoneCallEnd(Context context) {
try {
// Get the boring old TelephonyManager
TelephonyManager telephonyManager =
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
// Get the getITelephony() method
Class classTelephony = Class.forName(telephonyManager.getClass().getName());
Method methodGetITelephony = classTelephony.getDeclaredMethod("getITelephony");
// Ignore that the method is supposed to be private
methodGetITelephony.setAccessible(true);
// Invoke getITelephony() to get the ITelephony interface
Object telephonyInterface = methodGetITelephony.invoke(telephonyManager);
// Get the endCall method from ITelephony
Class telephonyInterfaceClass = Class.forName(telephonyInterface.getClass().getName());
Method methodEndCall = telephonyInterfaceClass.getDeclaredMethod("endCall");
// Invoke endCall()
methodEndCall.invoke(telephonyInterface);
} catch (Exception ex) { // Many things can go wrong with reflection calls
String error=ex.toString();
Toast.makeText(context, "error: "+ error , Toast.LENGTH_LONG).show();
txtHome.setText("error: "+ error);//cambio el contenido del TextView
}
}
Le problème est que j'obtiens l'erreur suivante : "java.lang.reflect.invocationTargetException".
l'application se plante à la ligne "methodEndCall.invoke(telephonyInterface) ;".
Pouvez-vous m'indiquer la manière correcte de refuser l'appel en cours ?