EM55_切换语音通道相关修改RIL7(A20)-20130329
来源:互联网 发布:新站怎么做站外优化 编辑:程序博客网 时间:2024/05/21 20:25
---- Jet add for earphone mode Matches (13 in 13 files) ----
CommandsInterface.java (telephony\java\com\android\internal\telephony): //Jet add for earphone mode
Phone.java (telephony\java\com\android\internal\telephony): //Jet add for earphone mode
PhoneBase.java (telephony\java\com\android\internal\telephony): //Jet add for earphone mode
PhoneProxy.java (telephony\java\com\android\internal\telephony): //Jet add for earphone mode
PhoneUtils.java (phone\src\com\android\phone): //Jet add for earphone mode
RIL.java (telephony\java\com\android\internal\telephony): //Jet add for earphone mode
RILConstants.java (telephony\java\com\android\internal\telephony): //Jet add for earphone mode
SipCommandInterface.java (telephony\java\com\android\internal\telephony\sip): //Jet add for earphone mode
Ril.cpp (ril\libril): //Jet add for earphone mode
Ril.h (ril\include\telephony)://Jet add for earphone mode
Ril_commands.h (ril\libril): //Jet add for earphone mode
SimulatedCommands.java (telephony\java\com\android\internal\telephony\test): //Jet add for earphone mode
UsimDataDownloadCommands.java (telephony\tests\telephonytests\src\com\android\internal\telephony\gsm): //Jet add for earphone mode
--------------------------------------------------------------------------------------
======================================================================================
总结分析:以下流程仅供参考
PhoneUtils.java里面调用app.phone.switchToEarphoneMode----->
PhoneProxy.java中调用--->phone.java(只有定义)---->PhoneBase.java(实现)--->调用CommandsInterface.java函数--->RIL.java
1.RILConstants.java这个文件什么时候被调用?
2.重点看ril.java层以下。
rr= RILRequest.obtain(RIL_REQUEST_SWITCH_EARPHONE, result)---将3001发送给rr。
switchToEarphoneMode(1, null)-----RIL_REQUEST_SWITCH_EARPHONE-
---------------------------------------------------------------------------------------
1.Phone.java----------------------public interface Phone 接口中添加
public void switchToEarphoneMode(int mode, Message result);
2.RIL.java------实现了这个接口CommandsInterface
case RIL_REQUEST_SWITCH_EARPHONE: ret = responseVoid(p); break; //2290----返回ok?
case RIL_REQUEST_SWITCH_EARPHONE: return "RIL_REQUEST_SWITCH_EARPHONE"; //3501----调试RILJ_LOGD的作用。
//Jet add for earphone mode
public void switchToEarphoneMode(int mode, Message result) {
RILRequest rr = RILRequest.obtain(RIL_REQUEST_SWITCH_EARPHONE, result);//请求放在RILRequest rr 中了。
rr.mp.writeInt(1);
rr.mp.writeInt(mode);
if (RILJ_LOGD) riljLog(rr.serialString() + "> " + requestToString(rr.mRequest));
send(rr);//发送给hardware层了。。。。。
}
---------------------------------------------------------------------------------------
3.ril_commands.h
添加 //Jet add for earphone mode
{RIL_REQUEST_SWITCH_EARPHONE, dispatchInts, responseVoid},
---------------------------------------------------------------------------------------
4.ril.h新有
#define RIL_REQUEST_SWITCH_EARPHONE 3001
5.UsimDataDownloadCommands.java SimulatedCommands.java 都是测试用的,直接添加接口就可以了。
public void switchToEarphoneMode(int mode, Message result) {}
7.SipCommandInterface.java
public void switchToEarphoneMode(int mode, Message result) {}
---------------------------------------------------------------------------------------
8.RILConstants.java :和下层的标号是一样的。
int RIL_REQUEST_SWITCH_EARPHONE = 3001;
9.ril.cpp是重点:
10.PhoneUtil.java
static void turnOnSpeaker(Context context, boolean flag, boolean store)======这个函数是系统有的函数为添加代码起始位置
if(flag)
app.phone.switchToEarphoneMode(2, null);
else
{
//app.phone.switchToEarphoneMode(0, null);
log("audioManager.isWiredHeadsetOn(): "+audioManager.isWiredHeadsetOn());
if(!audioManager.isWiredHeadsetOn())
app.phone.switchToEarphoneMode(0, null);
else
app.phone.switchToEarphoneMode(1, null);
}
注:PhoneApp app = PhoneApp.getInstance();
PhoneApp是Phone应用层的程序,
---------------------------------------------------------------------------------------
11.PhoneProxy.java
//Jet add for earphone mode
public void switchToEarphoneMode(int mode, Message result) {
mCommandsInterface.switchToEarphoneMode(mode, null);
}
12.PhoneBase.java
public void switchToEarphoneMode(int mode, Message result) {
mCM.switchToEarphoneMode(mode, null);//public CommandsInterface mCM;
}
13.CommandsInterface.java //只是提供接口,具体实现在Ril.java中。
public void switchToEarphoneMode(int mode, Message result);
-----------------------------------------------------------------------------------------
=========================================================================================
二、ril层的分析:
1.ril.h (ril\include\telephony):
#define RIL_REQUEST_SWITCH_EARPHONE 3001
2.ril_commands.h (ril\libril):
{RIL_REQUEST_SWITCH_EARPHONE, dispatchInts, responseVoid},
----------------------------------------------------------------------------------------
3.Ril.cpp (ril\libril): //Jet add for earphone mode
case RIL_REQUEST_SWITCH_EARPHONE: return "SWITCH_EAR_MODE";
-----------------------------------------------------------------------------------------
- EM55_切换语音通道相关修改RIL7(A20)-20130329
- 多通道语音合成
- A20修改串口设备文件
- 全志a20 修改序列号
- 全志a20 修改鼠标右键返回
- PS修改通道
- 调试WM9714音频通道切换
- 调试WM9714音频通道切换
- 调试WM9714音频通道切换
- android声音通道的切换
- Audio音频输出通道切换
- 单通道语音分离之CASA技术
- 单通道语音增强for ASR
- 全志a20修改设备基本信息--> 修改 build.prop
- 语音通信相关概念
- 语音识别相关资料
- 语音及音频相关
- 语音相关知识
- 20个建议使你成为更好的程序员
- Volley的初步使用
- xml解析
- 【比较器】——Comparator和Runnable、FileNameFilter接口的巧用
- 图片处理备用~
- EM55_切换语音通道相关修改RIL7(A20)-20130329
- LINQ to Object的一个例子 连接查询
- html中路径:点杠,点点杠的区别
- 计算机病毒应急处理中心:移动端病毒感染率下降
- http网络通信--页面源代码查看
- starling 中如何使用htmltext
- Jsonp原理及实现
- SharePoint咨询师之路:设计之前的那些事三:体系结构
- 基础知识--Java基本数据类型