gpt4 book ai didi

android - 如何以编程方式开始电话 session

转载 作者:行者123 更新时间:2023-11-30 04:47:31 30 4
gpt4 key购买 nike

我正在创建一个依赖于父子关系的应用程序,其中当 child 接到特定号码的电话时,它应该在与 parent 的电话 session 中自动更改。是否可以?

我读到一个类 com.android.internal.telephony.gsm.GSMPhone
我们可以从中执行此功能。但是我没有直接上这门课。所以请帮我做这件事。我接到来电接收器的电话。

最佳答案

您不能从应用程序中执行此操作。 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();
}

关于android - 如何以编程方式开始电话 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4497528/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com