itelephony.aidl answerringingcall()不起作用

时间:2013-06-13 11:06:10

标签: android

我正在尝试在我的应用程序中使用ITelephony.aidl。使用此我想接听来电。我设法使用endcall(),它完美地工作。但是当我尝试使用answerringingcall()时,它会抛出错误并说需要修改MODIFY_PHONE_STATE,但是因为它只适用于系统应用程序而无法使用。

那么在Android 2.3及更高版本上有没有办法让这个工作?或者还有其他方式来接听电话吗?

提前感谢:)

这是我的代码。

`

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();
        }
    }`

这是我的ITelephony.aidl文件

 package com.android.internal.telephony;
interface ITelephony {

 boolean endCall();

 void answerRingingCall();


}

2 个答案:

答案 0 :(得分:2)

必须添加权限uses-permission android:name =“android.permission.MODIFY_PHONE_STATE”

答案 1 :(得分:0)

可能是@ pra16你找到了接听电话的方法。如果没有看到这个link。耳机keyevent hack对我来说很好。我在android 4.3上测试了它