#####需求是要在电话响铃、接听或打出时,暂停当前的音乐播放;
#####然而在不获取通话相关权限的状态下,通过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'
求大神支招~