问题描述
我想在我的应用程序中使用ITelephony.aidl。使用此我想接听来电。我设法使用结束呼叫()和它完美的作品。但是,当我尝试使用answerringingcall()它抛出的错误,并表示,MODIFY_PHONE_STATE是必要的,但由于它仅适用于系统应用程序不能被使用。
那么,有没有做对Android 2.3及以上这项工作的方法吗?或者是有应答呼叫任何其他方式?
在此先感谢:)
这是我的code。
`
公共无效callAnswer(){
尝试{
C类=的Class.forName(telephony.getClass()的getName());
方法M = c.getDeclaredMethod(getITelephony);
m.setAccessible(真);
telephonyService =(ITelephony)m.invoke(电话);
telephonyService.answerRingingCall();
}赶上(RemoteException的E){
// TODO自动生成catch块
e.printStackTrace();
}
}`
这是我ITelephony.aidl文件
包com.android.internal.telephony;
接口ITelephony { 布尔结束呼叫(); 无效answerRingingCall();
}
必须添加许可使用许可权的android:NAME =android.permission.MODIFY_PHONE_STATE
I am trying to use ITelephony.aidl in my application. Using this i want to answer the incoming call. I managed to use endcall() and it works perfectly. But when i try to use answerringingcall() it throws error and says that MODIFY_PHONE_STATE is needed, but cant be used since its only available for system apps.
So is there any way of making this work on android 2.3 and above?or is there any other way for answering calls ?
thanks in advance:)
here's my code.
`
public void callAnswer(){
try {
Class c = Class.forName(telephony.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
telephonyService = (ITelephony) m.invoke(telephony);
telephonyService.answerRingingCall();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}`
and this is my ITelephony.aidl file
package com.android.internal.telephony;
interface ITelephony {
boolean endCall();
void answerRingingCall();
}
must add permission uses-permission android:name="android.permission.MODIFY_PHONE_STATE"
这篇关于itelephony.aidl answerringingcall()不工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!