安卓的TelephonyManager.listen方法注册的监听小米手机收不到,如何正常处理?

#####需求是要在电话响铃、接听或打出时,暂停当前的音乐播放;

#####然而在不获取通话相关权限的状态下,通过TelephonyManager注册通话状态的监听,已测试在大部分机型上可用,然而小米手机却奇葩的收不到监听,只在注册的时候返回了一次当时的通话状态。

#####所以想要问一下大佬们,有没有人碰到过这样的问题,是如何解决的?或者帮我出出主意,还有什么办法可以做到这样的需求。

####目前已经尝试过的方法
#####1.注册广播BroadcastReceiver,小米手机收不到,相关代码:

receiver = new PhoneReceiver();
filter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL);
filter.addAction("android.intent.action.PHONE_STATE");
registerReceiver(receiver, filter);


#####2.使用TelephonyManager.listen,小米同样不行:

tm?.listen(object : PhoneStateListener() {
    override fun onCallStateChanged(state: Int, phoneNumber: String?) {
        Log.d("TestV","onCallStateChanged-->[$state], phoneNumber-->[$phoneNumber]")
        Toast.makeText(this@testTelephonyManager, "收到回调-->$state", Toast.LENGTH_SHORT).show()
    }
}, PhoneStateListener.LISTEN_CALL_STATE)

####在强调下是不请求更多权限的情况下,目前只有'READ_PHONE_STATE'

求大神支招~

https://blog.csdn.net/decide15/article/details/52170174

同问,我在mix3上没有问题,测试的mi8就有问题了。不过暂时没办法排除是不是因为mi8装了双卡的问题。