拒绝来电的问题

时间:2011-05-22 18:04:46

标签: android

我尝试拒绝拨打此代码的来电:

    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

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,但我已经解决了。

这是因为你已经从ITelephony.aidl推进了ITelephony。您必须在proguard.cfg文件中对其进行过滤。

答案 1 :(得分:2)

-keep class com.android.internal.telephony.ITelephony {*; }

答案 2 :(得分:1)

请按照以下步骤操作

  1. 从android源存储库下载ITelephony.aidl。
  2. 将ITelephony.aidl重命名为ITelephony.java
  3. 将此文件放在项目src目录中/src/android/internal/telephony/ITelephony.java
  4. 它会起作用。