4

我正在尝试在我的应用程序中使用 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();


}
4

2 回答 2

2

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

于 2013-09-23T02:10:03.603 回答
0

可能是@pra16,您找到了一种接听电话的方法。如果不查看此链接。耳机 keyevent hack 对我来说效果很好。我在 android 4.3 上测试过

于 2014-04-11T21:23:50.683 回答