如何控制android中的呼叫活动

如何控制android中的呼叫活动,android,telephonymanager,Android,Telephonymanager,我的应用程序需要控制呼叫活动。我曾使用过Itelephony aidl,但它在实际设备中不起作用。我搜索过很多场景,但他们都在使用Itelephony aidl。 我的问题是如何以与所有版本兼容的编程方式结束调用。 我正在使用以下方法中的对象执行结束调用 protected Object getITelephony(final Context context) throws SecurityException, NoSuchMethodException, Ill

我的应用程序需要控制呼叫活动。我曾使用过Itelephony aidl,但它在实际设备中不起作用。我搜索过很多场景,但他们都在使用Itelephony aidl。 我的问题是如何以与所有版本兼容的编程方式结束调用。 我正在使用以下方法中的对象执行结束调用

protected Object getITelephony(final Context context)
        throws SecurityException, NoSuchMethodException,
        IllegalArgumentException, InvocationTargetException,
        IllegalAccessException
    {
        final TelephonyManager tm = (TelephonyManager)
                context.getSystemService(Context.TELEPHONY_SERVICE);
        final Method getITelephony
                = tm.getClass().getDeclaredMethod("getITelephony");
        if (!getITelephony.isAccessible()) {
            getITelephony.setAccessible(true);
        }
        return getITelephony.invoke(tm);

    }

使用反射来访问“getITelephony”在Android 2.3中不起作用+

参考:


请参阅此链接,希望这对您有所帮助。。。由于ITelephony无法在API级别2.3以上运行。

由于ITelephony.aidl方法是一种绕过谷歌不提供此功能的微弱尝试的黑客手段,因此您可能很难(阅读:无法)找到“在所有版本中”都有效的解决方案,特别是如果你发现这个黑客不是解决方案,你为什么要这么做?这正是API设计用来阻止您做的事情。在2.3
ITelephony
以上的版本中,您无法断开调用,并且有一个选项可以传递飞行模式…在最新版本中,您无法以编程方式打开飞行模式。