如何以编程方式启动电话会议

时间:2010-12-21 08:44:01

标签: android

我正在创建一个取决于父子关系的应用程序,其中当孩子从特定号码接听电话时,它应该在与父母的电话会议中自动更改。 可能吗?

我读到了关于课程com.android.internal.telephony.gsm.GSMPhone的内容 从中我们可以做到这一功能。但我没有直接上这堂课。所以请帮我这样做。我接到了来电接听者的电话。

1 个答案:

答案 0 :(得分:1)

您无法从应用程序执行此操作。 com.android.internal.telephony.gsm.GSMPhone是一个内部类,您无法访问它。您可以尝试使用JAVA反射来实例化它,但是您将获得异常。您只能从应用程序设置电话状态监听器等,或者您可以通过接收一些广播“NEW_OUTGOING_CALL”来拦截外出呼叫。 尝试这样,但它不起作用: - )

try {
            final Class<?> classPhonefactory = classLoader
                    .loadClass("com.android.internal.telephony.PhoneFactory");
            Class.forName("com.android.internal.telephony.PhoneFactory");

            // Object objPhonefactory = classPhonefactory.newInstance();



            Method method_getDefaultPhone;
            method_getDefaultPhone = classPhonefactory
                    .getDeclaredMethod("getGsmPhone");
            method_getDefaultPhone.setAccessible(true);
            Object phoneProxyInstance = method_getDefaultPhone.invoke(null, null);

            if (null == phoneProxyInstance) {
                Log.i("CALLActivity", "Exception!");
            } else {
                Log.i("CALLActivity", "GOT phoneProxyInstance!");
            }

        } catch (ClassNotFoundException e) {
            Log.e("CALLActivity", "PhoneFactory", e);
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }