Не удается обнаружить входящий звонок в Oreo - PullRequest
0 голосов
/ 27 ноября 2018

Я работаю над Приложением, в котором мне нужно обнаружить входящий вызов в 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 не работает, я не уверен, где я делаю не так

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

в Android 8 (Oreo) вещательные приемники ограничены.https://developer.android.com/about/versions/oreo/background

0 голосов
/ 27 ноября 2018

Создайте широковещательный приемник и объявите его в файле манифеста, если вам нужно, чтобы он работал, даже когда приложение не включено, в противном случае сделайте широковещательный приемник в действии, чтобы ваше приложение прослушивало вызовы (буквально не слушает,Я думаю, вы знаете, что я говорю).Когда вы создаете его, просто наберите registerReceiver (... заполните ваши фильтры намерений и т. Д. Здесь ...) в функции onCreate и unregisterReceiver () в onDestroy (), чтобы завершить его раньшезакрытие активности

...