我尝试拒绝拨打此代码的来电:
private void ignoreCallAidl(Context context)
{
try
{
tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony)m.invoke(tm);
telephonyService.silenceRinger();
telephonyService.endCall();
}
catch (Exception e)
{
e.printStackTrace();
Log.e("App","FATAL ERROR: could not connect to telephony subsystem");
Log.e("App","Exception object: "+e);
}
}
但我收到一个错误: 异常对象:java.lang.ClassCastException:com.android.internal.telephony.ITelephony $ Stub $ Proxy
答案 0 :(得分:3)
我遇到了同样的问题,但我已经解决了。
这是因为你已经从ITelephony.aidl
推进了ITelephony。您必须在proguard.cfg
文件中对其进行过滤。
答案 1 :(得分:2)
-keep class com.android.internal.telephony.ITelephony {*; }
答案 2 :(得分:1)
请按照以下步骤操作
它会起作用。