Android之来电秀实现(二)
今天要说的主题是来电秀实现里面的电话接听与挂机,在这里我们需要用到ITelephony.aidl相关的一些文件,
如下图:
将如上文件导入到工程,去掉一些不需要的aidl关联,其中PhoneUtils是自己创建的,里面主要写的是调用接听和挂机函数。
public static com.android.internal.telephony.ITelephony getITelephony() throws Exception {Class clazz = Class.forName("android.os.ServiceManager"); Method getServiceMethod = clazz.getMethod("getService", String.class); IBinder iBinder = (IBinder) getServiceMethod.invoke(null, Context.TELEPHONY_SERVICE); ITelephony iTelephony = ITelephony.Stub.asInterface(iBinder); return ITelephony.Stub.asInterface(iBinder);}
得到Itelphony后,里面有很多函数可以调用,下面说两个今天的主题,电话的接听和挂机,代码如下:
/*** 接听电话* @param context*/public static void answerRingingCall(Context context) {try {if(VERSION.SDK_INT > VERSION_CODES.GINGERBREAD){// android 2.3以上try{Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));context.sendOrderedBroadcast(buttonUp, "android.permission.CALL_PRIVILEGED");}catch(Exception e){Intent buttonUp = new Intent(Intent.ACTION_MEDIA_BUTTON);buttonUp.putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_HEADSETHOOK));context.sendOrderedBroadcast(buttonUp,null);}}else{getITelephony().answerRingingCall();} } catch (Exception e) {LogUtils.e(e);}}/*** 挂机*/public static void endRingingCall() {try{getITelephony().endCall(); }catch(Exception e){LogUtils.e(e);}}
在这里要说明一点,因为andoid版本众多,有部分兼容性问题,其中自Android 5.0以后 ,接听电话answerRingingCall就已经失效了,通过模拟耳机按键接听电话也不起作用了,5.0以后接听电话暂时没有更好的处理方式,对于上面的接听实现,5.0以前上面的接听函数还是正常起作用的。
Android之来电秀实现(二)相关推荐
- Android之来电秀实现(一)
简单的说下实现来电秀的大概原理流程:首先通过监听来电状态,通过拦截来电然后在窗口弹出一层系统级别的弹窗,这层弹窗即是来电秀. 先来两张效果图: 下面来说下实现,因为商用的原因,不能直接贴代码,所以在这 ...
- Android 来电秀总结
前言 效果图 TODO 参考文章 实现思想 申请权限 静态权限 动态权限 监听电话 BroadcastReceiver +悬浮窗显示实现 InCallService + Activity实现 最后 该 ...
- android 来电秀 开源,自定义来电秀Demo
[实例简介] 完全自定义界面的来电秀demo,以各种方式显示自定义界面.详情请看 http://blog.csdn.net/likebamboo/article/details/14449881 [实 ...
- Android 实现仿360来电秀的功能
公司项目中需要实现当有电话进来时,在来电界面显示这个手机号码的一些信息. 需要解决两个问题: 1.悬浮窗的问题 2.后台服务保活的问题 悬浮窗需要在解锁的状态下弹出,在锁屏的状态下也需要弹出. ...
- android 通话状态监听(自定义接听挂断按钮与通话界面,根据公司的业务逻辑可以实现自己的来电秀功能)...
前言: 因为公司需求,要自定义一款来电秀的app当做周边产品来配合主营的app业务. 之前因为赶项目,没时间整理这块,现在项目告一段落了,现在回头看看感觉这个功能还是挺有意思的,比较有针对性.电话呼入 ...
- Android来电秀应用
废话:接了个加急项目,要求10天完成一个类似来电秀的APP,看来领导是很相信我的技术的,哈哈,(内心OS:尼玛,臣妾做不到),然鹅并没有什么用,还是想想如何实现吧 ###项目步骤(技术难点拆分) * ...
- android实现来电动画,华为来电动画app-华为来电动画(透明来电秀)安卓版-幻想游戏网...
华为来电动画app是一款非常好用靠谱的手机来电动画设置应用软件平台,在华为来电动画这款应用软件平台里它汇集了海量的潮流炫彩主题素材,用户可以随意选择自己喜欢的来电动画设置,你还在等待什么?大家赶快来点 ...
- Android设置来电壁纸,来电壁纸秀下载-来电壁纸秀 安卓版v1.0.7-PC6安卓网
来电壁纸秀是一款特别炫酷的来电壁纸美化软件.来电壁纸秀app给大家准备了超级多的精美壁纸素材,来电壁纸秀不仅有无数的壁纸素材,而且来电壁纸秀app还有很多来电秀模板! 软件介绍 来电壁纸秀是一款来电秀 ...
- Android 号码, 来电归属地 Jni 使用C++对二进制文件查询(一) 理论篇
1.效果图 左边的是应用程序界面,只是做个测试.右边的是应用程序信息,你会发现数据这块很小,只有420KB,要知道里面有近280,000记录. 2.尝试使用sqlite数据库, 用db格式文件. 随便 ...
最新文章
- win10重置此电脑_Windows 10更新导致“重置此电脑”失效 微软给出解决办法
- SAP Smartforms 条码打印
- 动态添加html示例
- linux两台电脑直连传数据,两台MAC电脑通过局域网快速传输文件
- 2014 年移动设备界面设计有哪些趋势?
- python入门基础要点,入门决定没问题(初学者专属)
- python的def语句_关于语法:python def函数:如何指定函数的结尾?
- iOS开发常用之博客
- 微信端权限控制java,微信支付:特约子商户商户号未授权服务商的产品权限 的解决方案...
- 快速gcd vs 普通gcd
- 基于PHP的图书商城系统
- 计算机专业处理器和显卡,45.显卡篇-处理器显卡和独立显卡哪个好-电脑自学网...
- 学习记录557@flowable流程回退与终止
- Ubuntu server 设置root密码
- Python--getattr、__getattr__、__getattribute__,倔强一下
- 硬件bypass原理介绍
- tp5 使用快递100的SDK
- cocosbuilder详细使用教程
- 【Hive】Hive求所在周的第一天(周一),求所在月的第一天,求所在年的第一天
- QCC5124与QCC5125主要功能对比