![](/img/trans.png)
[英]how to auto answer and incoming call given i have detected that the phone is ringing via my app
[英]Can't auto answer phone call within my Android System App via ITelephony
我想通过自动接听电话来利用Android Lollipop上的android.permission.MODIFY_PHONE_STATE,就像Play商店中提供的一些免提“驾驶员辅助”应用程序一样。
我从AutoAnswer项目中找到了一些代码,但是当我运行它时,我收到一个InvocationTargetException,指出“用户####或应用程序都没有MODIFY_PHONE_STATE权限。”
但是,在清单中,我有: <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
,我已经将我的apk安装到/system/app/AutoAnswer.apk
,并将其权限设置为644。
要求是我不需要植根电话即可工作,但是我确实能够将应用程序添加到自定义ROM(因此它是系统应用程序)。
调用代码如下所示:
TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
Class c = Class.forName(tm.getClass().getName());
Method m = c.getDeclaredMethod("getITelephony");
m.setAccessible(true);
Object telephonyService = m.invoke(tm);
Method m1 = telephonyService.getClass().getMethod("silenceRinger");
Method m2 = telephonyService.getClass().getMethod("answerRingingCall");
//m1.invoke(telephonyService); // not supported for OnePlus2
m2.invoke(telephonyService); // <- This is the line that throws the error
为什么不允许我从系统应用程序使用MODIFY_PHONE_STATE? 有解决方法吗?
要解决此问题,您不妨查看一下如何在Android 5.0(Lollipop)中以编程方式接听来电?
如果可以从用户那里获得显式授予的通知访问权限,那么您可以在那里查看我的答案,该答案在Android 5.0和5.1下对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.