Android通話默認打開揚聲器的方法
在打電話時如果想在電話接通時默認采用揚聲器進行audio的輸出,也就是打開免提。具體的做法是在InCallService文件中,做出下面的修改。
文件:frameworks-base / telecomm/java/android/telecom/InCallService.java
增加oncreate方法,添加phone狀態(tài)監(jiān)聽的listener。
@Override
public void onCreate() {
super.onCreate();
MyPhoneStateListener phonehoneStateListener=new MyPhoneStateListener();
TelephonyManager mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
mTelephonyManager.listen(phonehoneStateListener,PhoneStateListener.LISTEN_CALL_STATE);
}
增加銷毀事件
@Override
public void onDestroy() {
super.onDestroy();
}
增加事件的定義。
private class MyPhoneStateListener extends PhoneStateListener{
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
setAudioRoute(CallAudioState.ROUTE_EARPIECE);
break;
case TelephonyManager.CALL_STATE_RINGING:
setAudioRoute(CallAudioState.ROUTE_SPEAKER);
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
setAudioRoute(CallAudioState.ROUTE_SPEAKER);
default:
break;
}
super.onCallStateChanged(state, incomingNumber);
}
}
如果是MTK平臺的話,可以開啟如下這個宏,也可以達到想要的效果
MTK_TB_APP_CALL_FORCE_SPEAKER_ON = yes
Android手機聽筒和揚聲器切換
AudioManager audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
private void setSpeakerphoneOn(boolean on) {
if(on) {
audioManager.setSpeakerphoneOn(true);
} else {
audioManager.setSpeakerphoneOn(false);//關閉揚聲器
audioManager.setRouting(AudioManager.MODE_NORMAL, AudioManager.ROUTE_EARPIECE, AudioManager.ROUTE_ALL);
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
//把聲音設定成Earpiece(聽筒)出來,設定為正在通話中
audioManager.setMode(AudioManager.MODE_IN_CALL);
}
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android 開發(fā)使用Activity實現(xiàn)加載等待界面功能示例
這篇文章主要介紹了Android 開發(fā)使用Activity實現(xiàn)加載等待界面功能,結合實例形式詳細分析了Android基于Activity實現(xiàn)加載等待界面布局與功能操作技巧,需要的朋友可以參考下2020-05-05
Android TimeLine 時間節(jié)點軸的實現(xiàn)實例代碼
本篇文章主要介紹了Android TimeLine 時間節(jié)點軸的實現(xiàn)實例代碼,這里整理了詳細的代碼,有需要的小伙伴可以參考下。2017-03-03
Android SharedPreferences實現(xiàn)記住密碼和自動登錄界面
本篇文章主要介紹了Android記住密碼和自動登錄界面的實現(xiàn)(SharedPreferences),具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-02-02
Android實現(xiàn)知乎選項卡動態(tài)隱藏效果實例
選項卡相信對大家來說應該不陌生,最近發(fā)現(xiàn)知乎選項卡的動態(tài)隱藏效果不錯,下面這篇文章主要給大家介紹了關于Android實現(xiàn)知乎選項卡動態(tài)隱藏效果的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧。2018-02-02
vscode通過wifi調(diào)試真機的Flutter應用的教程
這篇文章主要介紹了vscode通過wifi調(diào)試真機的Flutter應用的教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04

