为系统AudioManager添加新的接口方法
来源:互联网 发布:个人交易怎么走淘宝 编辑:程序博客网 时间:2024/06/18 18:46
转载请注明出处
本位以添加控制AudioRecorder禁止使用为例进行说明
整个需要添加的类均在frameworks\base\media\java\android\media 包下
1.AudioManager.java中添加两个方法,设置是否可用
/** * * * @hide */ public boolean getRecorderEnable() {IAudioService service = getService(); try { return service.getRecorderEnable(); } catch (RemoteException e) { Log.e(TAG, "Dead object in getLastAudibleStreamVolume", e); return false; } }/** * * * @hide */ public void setRecorderEnable(boolean show){ IAudioService service = getService(); try { service.setRecorderEnable(show); } catch (RemoteException e) { Log.e(TAG, "Dead object in getLastAudibleStreamVolume", e); } }2.IAudioService.aidl中添加2个新的接口
boolean getRecorderEnable();void setRecorderEnable(boolean enable);3.AudioService中添加接口的实现
private boolean showSoundRecorder=false;/** @see AudioManager#setRecorderEnable(boolean) */ public void setRecorderEnable(boolean show){ showSoundRecorder=show; } /** @see AudioManager#getRecorderEnable() */ public boolean getRecorderEnable() { return showSoundRecorder; }
系统应用调用:
mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);mAudioManager.setRecorderEnable(true);第三方应用调用:
// 第一种反射方式 try {method = AudioManager.class.getDeclaredMethod("setRecorderEnable",new Class[] { boolean.class });method.invoke(audioManager, new Object[] { new Boolean(true) });} catch (Exception e) {// TODO Auto-generated catch block//e.printStackTrace();Log.i("gao", e.toString());}}
0 0
- 为系统AudioManager添加新的接口方法
- 为SyntaxHighlighter添加新语言的方法
- 为arm linux内核添加新的系统调用
- 如何为Android系统添加一个新的资源包
- FRAMEWORK 添加新的接口
- Linux下为PHP添加新扩展库的方法
- 通过切面为Spring bean添加新的方法
- 统一接口:为FireFox添加IE的方法和属性
- 为Centos系统添加新磁盘
- 虚拟机为linux系统添加新硬盘
- AudioManager 修改系统Android系统的音量
- SpringAOP:为目标类添加新的功能(拓展接口)
- VS2010为新添加的对话框添加OnInitDialog()方法,即重写OnInitDialog()
- VS2010为新添加的对话框添加OnInitDialog()方法,即重写OnInitDialog()
- 使用AudioManager设置Android系统的音量
- 为系统菜单添加新的菜单并响应单击事件
- Q146:PBRT-V3,对系统进行拓展(以添加一个新的Integrator为例)
- 为生成的新行添加默认值
- Unity判断在物体内部和相交
- 如何配置GitHub
- ping 一般故障
- 转载:那些必须知道的ADB命令
- Android中attr自定义属性详解
- 为系统AudioManager添加新的接口方法
- 101------Spring + Hibernate进行开发Session不关闭的解决方法
- 国外PHP开源项目选择
- hrbust 1039 修路【二分+模拟】
- Best practice: Use the tap networking option in QEMU
- 文章标题
- office系列文档的在线预览解决方案 - 在linux平台下转为pdf
- IOS 视频框架
- JAVA基础----java中E,T,?的区别?