我正在尝试在来电中发送DTMF音。为此, android.telecom.Call 中有一个方法 playDtmfTone 。由于它是最后一堂课,我无法直接创建它的对象。
这就是我使用反射来获取对象的原因。但它引发了一个例外。 这是我的代码:
try{
Class<?> c = Class.forName("android.telecom.Call");
Object instance = c.newInstance();
Method m = c.getDeclaredMethod("playDtmfTone", char.class);
m.setAccessible(true);
m.invoke(instance, new Object[]{'1'});
}catch (Exception e){
Log.d("Exception of Reflection", e.getLocalizedMessage());
}
我正在关注msg:
反射异常:java.lang.Class没有零参数构造函数
我从这个answer中使用了这个想法。
我不确定会出现什么问题。
答案 0 :(得分:0)
根据android文档,您无法直接创建调用对象。检索调用对象的唯一方法是通过InCallService的回调方法onCallAdded(呼叫调用),通过调用对象,您可以调用playDtmfTone。