高版本自动接听电话方法

原文地址:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=894679&page=1&_dsign=b92c470b

高版本自动接听电话方法:
            try {
                Method method = Class.forName("android.os.ServiceManager")
                        .getMethod("getService", String.class);
               
                IBinder binder = (IBinder) method.invoke(null, new Object[]{TELEPHONY_SERVICE});
                ITelephony telephony = ITelephony.Stub.asInterface(binder);
                telephony.answerRingingCall();               
            } catch (NoSuchMethodException e) {
                Log.d("Sandy", "", e);
            } catch (ClassNotFoundException e) {
                Log.d("Sandy", "", e);
            }catch (Exception e) {
                Log.d("Sandy", "", e);
                try{
                    Log.e("Sandy", "for version 4.1 or larger");
                    Intent intent = new Intent("android.intent.action.MEDIA_BUTTON");
                    KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK);
                    intent.putExtra("android.intent.extra.KEY_EVENT",keyEvent);

sendOrderedBroadcast(intent,"android.permission.CALL_PRIVILEGED");
                } catch (Exception e2) {
                    Log.d("Sandy", "", e2);
                    Intent meidaButtonIntent = new Intent(Intent.ACTION_MEDIA_BUTTON);
                               KeyEvent keyEvent = new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK);
                               meidaButtonIntent.putExtra(Intent.EXTRA_KEY_EVENT,keyEvent);
                               sendOrderedBroadcast(meidaButtonIntent, null);
                }
            }

时间: 2024-12-25 18:54:24

高版本自动接听电话方法的相关文章

Android自动接听&挂断电话(包含怎么应对4.1以上版本的权限检

一  前言 这两天要研究类似白名单黑名单以及手势自动接听的一些功能,所以呢,自然而然的涉及到怎么自动接听/挂断电话的功能了.对于自动接听这一块,android4.1版本及其以上的版本和之前的版本处理逻辑不太一样,因为google增加了权限检查...所以,按照以前的方法可能不能实现自动接听了. 二  android低版本自动接听/挂断实现 1. copy android源代码的ITelephony.aidl文件到自己的项目为什么要copy这个文件到自己的项目中呢?这是因为接听/挂断电话的方法在接口

Android 电话自动接听和挂断详解

1.通过aidl及反射实现挂断电话 具体分三步: (1)ITelephony.aidl ,必须新建com.android.internal.telephony包并放入ITelephony.aidl文件(构建后在gen下有ITelephony.java文件,这是aidl生成的接口),文件内容如下: package com.android.internal.telephony; interface ITelephony{ boolean endCall(); void answerRingingCa

iis System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本。”解决方法

今天事情特别多, 电话不断, 但事情得一件一件的做. 在用VSTS2005/2008+Oracle9做环境连接Oracle时候,在VS 开发服务器运行正常,但IIS服务器调试和部署会报错! IIS服务器报错:System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本. 出错的原因: 1.虽然报的是需要安装客户端8.1.7及以上版本,实际是.net账户没有访问Oracle\bin文件夹的权限 2.在 Windows Server 2003/2008 的

Sql Server本地高版本备份数据备份至远程低版本数据库方法

想要将Sqlserver高版本备份的数据还原到低版本SqlServer2008R2上去,但是这在SqlServer中是没法直接还原数据库的,通过以下方法可以顺利还原. 通过高版本生成sql脚本在低版本执行,并且数据也能保留. 步骤:任务->生成脚本-> 下一步->高级,选择数据库版本和编写脚本数据类型为架构和数据,可以保留数据. 继续下一步完成. 最后在低版本的sql数据库中: 先新建脚本中的数据库,再实行sql生成表结构和数据. 完美还原成功!

VC6的工程转到VC2010或更高版本出现fatal error C1189编译错误的解决方法

以前也遇到过,当时解决了没写下来,这次正好又遇到了,就顺手写一下吧,别下次又忘记了. 当VC6的工程转到VC2010或更高版本时编译出现如下错误: c:\program files\microsoft visual studio 10.0\vc\atlmfc\include\afxver_.h(81): fatal error C1189: #error :  Please use the /MD switch for _AFXDLL builds 很多解决方法是把工程属性中的“常规”-“MFC

SqlServer高版本数据本分还原到低版本方法

最近遇见一个问题: 想要将Sqlserver高版本备份的数据还原到低版本SqlServer上去,但是这在SqlServer中是没法直接还原数据库的,所以经过一系列的请教总结出来一下可用方法. 首先.你得在电脑上装有你将要操作的高版本以及低版本的SqlServer或者你能够连上SqlServer高版本所在的数据库(便于后面拷贝数据), 第二步.打开高版本数据库中你需要备份的数据库,将你备份的数据库相关的登录名或者用户删除.右键数据库->任务->生成脚本.在生成脚本的“选择对象”步骤选择“编写整个

PHPExcel在高版本PHP7中,Writer->save出现ERR_INVALID_RESPONSE错误的解决方法

这个Writer->save错误可能由于很多原因导致,其中有一部分是因为header和缓冲区的错误导致的 这部分具体讨论可以看这里http://stackoverflow.com/questions/8566196/phpexcel-to-download 然而还有一个不容易发现的问题,在高版本PHP7下,出现ERR_INVALID_RESPONSE的错误还可能由于下面的原因导致 1 Fatal error: 'break' not in the 'loop' or 'switch' conte

高版本Android如何利用反射调用系统隐藏的远程服务拦截来电

要说拦截Android系统来电,就不得不说起在低版本的时候Android提供给开发者使用的一个方法:endCall(),但由于谷歌后来考虑到对于一部手机来说,最重要的功能就是打电话了,如果这个功能随随便便就被人屏蔽了,安全性太差,所以在高版本的Android将这个方法屏蔽了,不再在TelephoneManager中暴露这个方法. 那么我们下面的目标就是要想办法调用到这个方法,当然首先我们还是需要实现一个广播接收者,来接收电话状态改变的广播,这里使用在服务中动态注册广播接收者的方法来实现,主要好处

手把手教你Android来去电通话自动录音的方法

我们在使用Android手机打电话时,有时可能会需要对来去电通话自动录音,本文就详细讲解实现Android来去电通话自动录音的方法,大家按照文中的方法编写程序就可以完成此功能. 来去电自动录音的关键在于如何监听手机电话状态的转变: 1)来电的状态的转换如下(红色标记是我们要用到的状态) 空闲(IDEL)——> 响铃(RINGING)——> 接听(ACTIVE)——> 挂断(经历DISCONNECTING——DISCONNECTED)——> 空闲(IDEL) 或者  空闲(IDEL)