android - 无法检测到奥利奥的来电

标签 android incoming-call

我正在开发一个应用程序,我需要在 Activity 的 onResume() 中检测来电,我正在使用此代码来检测任何来电。

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);

    PhoneStateListener callStateListener = new PhoneStateListener() {
        public void onCallStateChanged(int state, String incomingNumber)
        {
            if(state==TelephonyManager.CALL_STATE_RINGING){
                // Code 
            }
        }
    };
    telephonyManager.listen(callStateListener,PhoneStateListener.LISTEN_CALL_STATE);

此外,它在 Oreo 以下的所有设备上都能正常工作,而在 Oreo 设备上却无法正常工作,我不确定我哪里做错了

最佳答案

制作一个广播接收器并在 list 文件中声明它,如果你需要它在应用程序未打开时也能工作,否则在 Activity 中制作一个广播接收器,让你的应用程序监听调用(不是字面上的监听,我想你知道我在说什么)。 当你创建它时,只需在 onCreate 函数中输入 registerReceiver(...fill your intent filters, etc...) 并在 onDestroy() 中输入 unregisterReceiver() 即可完成它在关闭 Activity 之前

关于android - 无法检测到奥利奥的来电,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53498787/

相关文章:

java - 当 android java 中显示软键盘时,布局不会向上移动或平移

Android 应用程序崩溃 "libjsc.so"缺少堆栈跟踪崩溃 : Thread: SIGSEGV 0x0000000000000010

android - 如何在 Android 中以编程方式连接配对的蓝牙设备?

android - Android "OS"如何检测来电

java - TextView 不以科学记数法显示大值

android - java.lang.NoClassDefFoundError : Failed resolution of: App class on Lenovo K4 Note running android 6, API 23

android - 来电时停止和启动音乐

android - 在 Android 的 TelephonyManager.CALL_STATE_RINGING 上将默认来电屏幕移至后台

android - 如何在android中以编程方式拒绝来电?

android - 如果没有 CALL_PHONE 权限,如何通过 ITelephony 界面拒绝来电?