android - 使用双卡手机时如何使用 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")
}
}
}
}
解决方案
在您的音乐服务类中实现 OnAudioFocusChangeListener。并在初始化媒体播放器之前覆盖一些方法。它会自动接听来电、去电和所有电话通知。
推荐阅读
- python - 根据子条件过滤 Panda DataFrame 父行
- networking - 当两者都连接到同一个热点时,客户端无法访问服务器上托管的网站
- python - 我如何提示用户将值输入到字典键中:姓名、年龄、课程并使用 python 以表格形式打印值
- bootstrap-4 - Bootstrap 4表格单元格垂直对齐似乎不像文档建议的那样工作
- javascript - 如何使用追加停止 JavaScript for 循环
- swift - 通过枚举、结构或其他方式处理本地化字符串?
- django - Django 表单发布操作
- go - 在 AST 中查找包引用
- node.js - express.Router 在自己的文件中分离时命中 404 而不是路由
- javascript - 输出为字符串