在某些情况下,我已在应用中使用PhoneStateReceiver
进行挂断,但在挂断电话时遇到错误。
catch:java.lang.ClassCastException: com.android.internal.telephony.ITelephony$Stub$Proxy cannot be cast to com.package.name.ITelephony
我已经在主软件包中添加了ITelephony.aidl
文件,但仍然存在相同的问题。
这是我的电话挂断代码。
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
try {
Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
com.callassistant.system.ITelephony telephonyService = (com.callassistant.system.ITelephony) m.invoke(tm);
Bundle bundle = intent.getExtras();
String phoneNumber = bundle.getString("incoming_number");
Log.d("INCOMING", phoneNumber);
System.out.println("Incoming number Hangup:"+phoneNumber);
if ((phoneNumber != null)) {
telephonyService.endCall();
Log.d("HANG UP", phoneNumber);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Incoming number Hangup catch:"+e);
}