Android高版本无法挂断电话问题
今天接到一个之前的功能,现在要拿出来看一看能不能用。打电话接到挂断,在网上搜了半天,自己的代码看了半天也就两种。
第一种 try {Method method = Class.forName("android.os.ServiceManager").getMethod("getService", String.class);IBinder binder = (IBinder) method.invoke(null, new Object[]{Context.TELEPHONY_SERVICE});ITelephony telephony = ITelephony.Stub.asInterface(binder);telephony.endCall(); } catch (NoSuchMethodException e) {Log.d("", "", e); } catch (ClassNotFoundException e) {Log.d("", "", e); } catch (Exception e) { }
另一种使用TelePhonyManager去挂断
TelephonyManager tm = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);Class tmClazz = tm.getClass();Method getITelephonyMethod = null; try {getITelephonyMethod = tmClazz.getDeclaredMethod("getITelephony", null);getITelephonyMethod.setAccessible(true);ITelephony iTelephony = (ITelephony) getITelephonyMethod.invoke(tm, null);iTelephony.endCall(); } catch (NoSuchMethodException e) {e.printStackTrace(); } catch (IllegalAccessException e) {e.printStackTrace(); } catch (RemoteException e) {e.printStackTrace(); } catch (InvocationTargetException e) {e.printStackTrace(); }
然后第一种不好使,报错
java.lang.NoSuchMethodError: No interface method endCall()Z in class Lcom/android/internal/telephony/ITelephony
看了半天是Aidl还有Framework啥的错误,改了一波也没整好,放弃了。
使用第二种,由与我是在一个工具类里写的TelephonyManager,当他.class的时候会报一个空指针的错误。在Acivity里使用时候完美运行,但是没有效果。
然后两种方法,都尝试过后不好使,研究了一上午发现了一个新的方式
TelecomManager tm = (TelecomManager) Context.getSystemService(Context.TELECOM_SERVICE); if(tm != null){tm.endCall(); }
完美挂掉。权限9.0添加一下:
<uses-permission android:name="android.permission.ANSWER_PHONE_CALLS"/>
Android高版本无法挂断电话问题相关推荐
- Android自动接听和挂断电话实现原理
转自:http://bbs.51cto.com/thread-1078059-1.html 一 前言 这两天要研究类似白名单黑名单以及手势自动接听的一些功能,所以呢,自然而然的涉及到怎么自动接听/挂 ...
- Android 5.1 Phone 挂断电话流程分析
写在前面的话 本文主要分析Android挂断电话的流程,研究的代码是Android 5.1的,以CDMA为例,GSM同理. 挂断电话主要分两种情况: 本地主动挂断电话 \color{red}{本地主动 ...
- android挂断电话广播,android实现接通和挂断电话
android实现接通和挂断电话 发布时间:2020-08-21 01:52:02 来源:脚本之家 阅读:230 作者:WillenWu 本文实例为大家分享了android实现接通和挂断电话的具体代码 ...
- 挂断电话的实现(即类似于电话号码黑名单)
在文章的开头先列出以下需要注意的地方: 1.需要用到的权限如下: <uses-permission android:name="android.permission.READ_PHON ...
- Android挂断电话流程
近期在友盟上看到许多关于挂断电话导致崩溃的问题,如下异常 java.lang.NoSuchMethodError: No interface method endCall()Z in class Lc ...
- Android挂断电话以及Java Class Loader
Android中,要自己实现一个挂断电话方法时,很久之前可以endCall().不过现在已经不行了,要应用反射机制,获取到 "android.os.ServiceManager" ...
- Android通过AIDL实现接听电话、挂断电话操作 | 拨打电话
Android中拨打电话功能是很轻松的只需要几行代码即可,如下: 首先还是得加上权限这个东西(或者动态申请) <!--拨打电话--> <uses-permission android ...
- android 实现挂断电话【四种方式】,亲测可用
网上查到两种挂断电话方式 第一种:通过反射得到隐藏的API,需要aidl文件,但是这种方式测试后,无效.方法写出来吧,也许对你有你有帮助. 首先在main文件下创建报名com.android.inte ...
- android 自动拨打电话和挂断电话(反射和intent方式)
欢迎来到博主的技术分享博客 今天分享的技术主要内容是自动拨打电话和挂断电话.自动拨打电话分为两种,一种是通过反射ITelephony这个类直接调用call方法,一种是通过intent方法.而挂断电话则 ...
最新文章
- 长期股权投资和私募股权投资的区别
- 圆环划痕检测halcon
- python wheel使用_【转载】Python,使用Wheel打包
- Nginx 配置 SSL 及 HTTPS 协议通信过程
- 【原创翻译】生动详细解释javascript的冒泡和捕获,包懂包会
- python爬虫中文乱码_Python爬虫处理抓取数据中文乱码问题
- 封装动态数组类Array
- devc运行不出窗口_足不出户“云出庭”?沾化“智慧检务”让法律监督“不打烊...
- The .NET Core runtime can be found at:(Windows)
- 一位 90 后程序员的自述:如何从年薪 3W 到 30W
- poj 3190(贪心)
- 网管必读-常用网络命令
- 软件测试——测试用例设计方法
- 进销存源码|ERP多仓库管理系统全开源php源码
- Origin 2017去除水印的方法
- coreldraw x4如何出血_CorelDRAW X4常用快捷键大全,详细始末
- SATA 与 PCIe
- 高通apq8096连接外网
- 指数分布具有“无记忆性”
- html 93c,对93c46编程
热门文章
- Windows10下的C盘扩容问题,亲测可用
- matlab2014 图标,Ubuntu14.04 Matlab 2014b启动器(使用matlab自带图标)
- 心中的感慨,当前的社会太现实了
- 学习笔记 JavaScript ES6 箭头函数
- webview传参给Android,webview 向Android传参
- Win32学习笔记(四)窗口的创建
- SATA Mode:Optane without Raid导致lsblk检测不到磁盘
- 元移动平台助力广东农信试水互联网+业务创新
- 魔兽世界 - PKU[课程作业]程序设计与算法(三)C++面向对象程序设计/coursera C++程序设计_World of warcraft Project
- Android MediaPlayer 中Context的传递