簡體   English   中英

無法通過ITelephony在我的Android系統應用程序中自動接聽電話

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM