调用RequestInterruptionFilter后电话不响铃

Cil*_*nco 9 android notification-listener android-phone-call

我目前正在开发一个可以改变设备环形模式的应用程序.为此,我创建了一个,NotificationListenerService并且从我的代码中我打电话requestInterruptionFilter来改变环模式.这里的一切都很棒!

现在,当我测试应用程序时,它出现了以下情况:我的手机上接到一个电话,在我的应用程序设置之后很短的时间,INTERRUPTION_FILTER_ALL但我的手机没有振铃.所以我在模拟器中尝试了相同的操作,我可以控制电话呼叫,它也会出现同样的奇怪行为:当INTERRUPTION_FILTER_ALARMS设置了ie 并且呼叫进来时我们设置INTERRUPTION_FILTER_ALL(在接听电话之前)电话没有响铃.

您是否有任何想法如何实现手机在这种情况下响铃?

编辑:我目前的代码如下:

public class NotificationService extends NotificationListenerService implements PhoneCallListener  {

    @Override
    public void onCreate() {
        super.onCreate();

        callReceiver = new CallReceiver(this);
        callReceiver.setListener(this);

        IntentFilter filter = new IntentFilter();
        filter.addAction(ACTION_PHONE_STATE_CHANGED);

        registerReceiver(callReceiver, filter);
     }

     @Override
     public void onPhoneCallIncoming(String phoneNumber) {
         requestInterruptionFilter(INTERRUPTION_FILTER_ALL);
     }

     @Override
     public void onPhoneCallEnded() {
         Log.d("cilenco", "Phone call ended");
    }
}

public class CallReceiver extends BroadcastReceiver {

    public void setListener(PhoneCallListener listener) {
        this.listener = listener;
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        if(ACTION_PHONE_STATE_CHANGED.equals(intent.getAction()) {
            String state = intent.getExtras().getString(EXTRA_STATE);
            String number = intent.getExtras().getString(EXTRA_INCOMING_NUMBER);

            if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {
                listener.onPhoneCallIncoming(number);
            } else {
                 listener.onPhoneCallEnded();
            }
        }
    }
} 
Run Code Online (Sandbox Code Playgroud)