我正在创建一个取决于父子关系的应用程序,其中当孩子从特定号码接听电话时,它应该在与父母的电话会议中自动更改。 可能吗?
我读到了关于课程com.android.internal.telephony.gsm.GSMPhone
的内容
从中我们可以做到这一功能。但我没有直接上这堂课。所以请帮我这样做。我接到了来电接听者的电话。
答案 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();
}