Android通话默认打开扬声器
16lz
2021-01-26
在打电话时如果想在电话接通时默认采用扬声器进行audio的输出,也就是打开免提。具体的做法是在InCallService文件中,做出下面的修改。
文件:frameworks-base / telecomm/java/android/telecom/InCallService.java
增加oncreate方法,添加phone状态监听的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 模拟器上查看shareperference文件内容
- apk、dex、odex梳理
- 使用Android(安卓)Studio创建OpenCV 4.1.0 项目
- Android(安卓)Studio使用技巧
- android下的读写权限
- 《Android(安卓)Activity》活动的介绍和创建
- Android(安卓)SharedPreference 源码分析(一)
- android jni 包裹文件(jni wrapper) 以 speex 库为例
- Android(安卓)Studio中使用*.jar,*.aar和*.so文件