[英]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.