本文主要是介绍Android 蓝牙实战——蓝牙电话通话状态同步(二十四),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前面分析了蓝牙电话通话状态的广播,我们可以在蓝牙电话中实时监听蓝牙电话的状态,但如果是其他音乐类 APP 呢,在播放的时候也需要知道当前是否有通话正在进行,但是有完全没必要实时监听电话的状态,这就需要一个获取通话状态的方法。
一、通话状态处理
1、CallsManager
源码位置:/packages/services/Telecomm/src/com/android/server/telecom/CallsManager.java
// 初始表大小设置为16,因为我们在CallsManager构造函数中添加了13个侦听器。
private final Set<CallsManagerListener> mListeners = Collections.newSetFromMap(new ConcurrentHashMap<CallsManagerListener, Boolean>(16, 0.9f, 1));
/*** 设置指定呼叫的指定状态。*/
private void setCallState(Call call, int newState, String tag) {……int oldState = call.getState();……if (newState != oldState) {……if (call.setState(newState, tag)) {……// 对于正在跟踪的呼叫,仅广播状态更改。if (mCalls.contains(call)) {updateCanAddCall();updateHasActiveRttCall();for (CallsManagerLis
这篇关于Android 蓝牙实战——蓝牙电话通话状态同步(二十四)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!