android call and audio
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
ConnCtl *:s
- android audio (http://blog.csdn.net/myspor/article/details/6278788)
- android Phone 距离感应器锁的实现(http://blog.csdn.net/nadiee/article/details/17219903)
- android -- 蓝牙 bluetooth (五)接电话与听音乐(http://blog.csdn.net/baimy1985/article/details/9275559)
-
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);
}
}
- 如果有 android 源代码,直接编译出 framework.jar。把这个jar包加到你的项目classpath里,然后那些hidden, internal 的类和方法都可以直接用了。
- try {
- Toast.makeText(getApplicationContext(), "dddd", 1).show();
- ITelephony it = PhoneUtil.getITelephony(tlmar);
- it.silenceRinger();
- // it.endCall();//拒接
- it.answerRingingCall();//自动接听
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
1、电话拦截
这个功能大家可能都知道了,就是利用反射原理调用ITelephony的隐藏方法来实现。
- //利用反射获取隐藏的endcall方法
- TelephonyManager telephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
- try {
- Method getITelephonyMethod = TelephonyManager.class.getDeclaredMethod("getITelephony", (Class[]) null);
- getITelephonyMethod.setAccessible(true);
- iTelephony = (ITelephony) getITelephonyMethod.invoke(telephonyMgr, (Object[]) null);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- //挂断电话
- iTelephony.endCall();
2、拦截后提示忙音/空号/已关机/已停机
这个功能其实是要用到MMI指令,具体如何设置呼叫转移的指定可以参考这里 http://baike.baidu.com/view/206402.html?fromTaglist。
在本文中我们会用到“遇忙转移”的功能。中国移动的设置方式是 **67#电话号码#,取消方式为 ##67#。”无条件转移“用21代替67即可。这两个指令可以直接在手机的拨号界面输入并拨号测试。ITelephony的endcall方法挂断电话后,会提示电话忙。如果事前设置好了忙时转移到一个空号/已关机/已停机的电话号码,就会提示您拨的电话号码是空号/已关机/已停机。
其实大家可以下载 xxx卫士看下,它设置来电拒接模式后,都是会启动设置MMI指令的界面。然后再去“设置->通话设置->来电转接”,看看 “占线时转接” 设置好的电话号码,就可以知道空号/已关机/已停机对应的电话号码是什么了。
- Message message = mHandler.obtainMessage();
- message.what = OP_REGISTER;
- mHandler.dispatchMessage(message);
- mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
- //先静音处理
- mAudioManager.setRingerMode(AudioManager.RINGER_MODE_SILENT);
- //再恢复正常铃声
- mAudioManager.setRingerMode(AudioManager.RINGER_MODE_NORMAL);
- private Handler mHandler = new Handler() {
- public void handleMessage(Message response) {
- int what = response.what;
- switch(what) {
- case OP_REGISTER:{
- Intent i = new Intent(Intent.ACTION_CALL);
- i.setData(Uri.parse(ENABLE_SERVICE));
- startActivity(i);
- break;
- }
- case OP_CANCEL:{
- Intent i = new Intent(Intent.ACTION_CALL);
- i.setData(Uri.parse(DISABLE_SERVICE));
- startActivity(i);
- break;
- }
- }
- }
- };
android call and audio的更多相关文章
- Android中的Audio播放:竞争Audio之Audio Focus的应用
from://http://blog.csdn.net/thl789/article/details/7422931 Android是多任务系统,Audio系统是竞争资源.Android2.2之前,没 ...
- Android中的Audio播放:控制Audio输出通道切换
Audio 输出通道有很多,Speaker.headset.bluetooth A2DP等.通话或播放音乐等使用Audio输出过程中,可能发生Audio输出通道的切换.比如,插入有线耳机播放音乐时,声 ...
- Android手机上Audio DSP频率低 memory小的应对措施
我在前面的文章(Android智能手机上的音频浅析)中说过Android手机上有一块专门用于音频处理的DSP,它的特点是频率低(一般几百MHZ).内部memory小(通常不超过100k word).要 ...
- Android : android 8.0 audio 接口分析
1.HIDL 的概念 HIDL 读作 hide-l,全称是 Hardware Interface Definition Language.它在 Android Project Treble 中被起草, ...
- Android系统分析之Audio音频流, 音频策略, 输出设备之间的关系
音频流, 音频策略, 输出设备之间的关系 只针对 AudioManager.STREAM_VOICE_CALL 音频流类型进行分析 涉及到的类: hardware/libhardware_legacy ...
- android wifi Direct Audio TX/RX延迟分析
1 Direct Audio TX代码流程 1.1 从Host到FW 1.1.1 代码流程 htc.c::HifLayerRecvCallback//从HIF_USB_CONTEXT获取数据中断,具体 ...
- MT6737 Android N 平台 Audio系统学习----录音到播放录音流程分析
http://blog.csdn.net/u014310046/article/details/54133688 本文将从主mic录音到播放流程来进行学习mtk audio系统架构. 在AudioF ...
- The RK3066/RK30SDK Android 4.2 audio codec has a bug!
在文件kernel/sound/soc/soc-core.c中,函数soc_bind_dai_link引入了一个新定义的宏CODEC_NAME_CMP,这个新玩意导致了后面的strcpy(p_code ...
- MTK Android Driver :Audio音频参数
音频参数集成(具体参数由硬件提供) 1.ring/key/mic/fmr/speech/sidetone/media/matv增益: \mediatek\custom\k9\cgen\inc\audi ...
随机推荐
- iOS Runloop的超级讲解
这是目前看过的最好的一片中文讲解RunLoop的文章,推荐给大家看一下,原文链接:http://blog.ibireme.com/2015/05/18/runloop/ https://segment ...
- Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动
Linux Redis安装,Linux如何安装Redis,Linux Redis自动启动,Redis开机启动 >>>>>>>>>>>& ...
- PHP代码审计笔记--文件包含漏洞
有限制的本地文件包含: <?php include($_GET['file'].".php"); ?> %00截断: ?file=C://Windows//win.in ...
- Linux设备驱动剖析之SPI(二)
957至962行,一个SPI控制器用一个master来描述.这里使用SPI核心的spi_alloc_master函数请求分配master.它在drivers/spi/spi.c文件中定义: struc ...
- read by other session 等待事件。
今天是2014-01-06,从今天开始,打算春节之前每天学习一个等待事件,今天就记录一下read by other session这个等待事件笔记. 什么是read by other session? ...
- slice 定义和用法
定义和用法 slice() 方法可从已有的数组中返回选定的元素. 语法 arrayObject.slice(start,end) 参数 描述 start 必需.规定从何处开始选取.如果是负数,那么它规 ...
- -webkit-transition -moz-transition transition
-webkit-transition -moz-transition transition 可以定义动画的变化时间曲线-webkit-transition-timing-function: ease ...
- vue实现按需加载(懒加载)
1.router文件中使用 export default new Router({ routes: [{ path: '/', name: 'Post', component: () => im ...
- Dockerfile ,ADD详细解读
一.ADD指令 ADD指令的功能是将主机构建环境(上下文)目录中的文件和目录.以及一个URL标记的文件 拷贝到镜像中. 其格式是: ADD 源路径 目标路径 如: #test FROM ubunt ...
- 23种设计模式之抽象工厂(Abstract Factory)
抽象工厂模式又称为Kit模式,属于对象创建型模式.抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形态,它提供了一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.在抽象工厂模 ...