首页 > 解决方案 > 使用双卡手机时如何使用 Phonestate lisner

问题描述

目前我正在开发一个安卓应用程序(音乐播放器)。所以我想在来电时暂停音乐并在通话结束时播放。此代码与一个 sim 完美配合,但不适用于双 sim。所以我想问一下这段代码应该做些什么改变才能与多卡设备一起使用

class CallListner : PhoneStateListener() {

override fun onCallStateChanged(state: Int, incomingNumber: String?) {
    when (state) {
        TelephonyManager.CALL_STATE_IDLE -> {
            Controls.playPauseControl("play")
        }
        TelephonyManager.CALL_STATE_OFFHOOK -> {
            Controls.playPauseControl("pause")
        }
        TelephonyManager.CALL_STATE_RINGING -> {
            Controls.playPauseControl("pause")
        }
    }
}

}

标签: androidkotlin

解决方案


在您的音乐服务类中实现 OnAudioFocusChangeListener。并在初始化媒体播放器之前覆盖一些方法。它会自动接听来电、去电和所有电话通知。

欲了解更多信息,请访问 android 开发者博客


推荐阅读