简单的说下实现来电秀的大概原理流程:首先通过监听来电状态,通过拦截来电然后在窗口弹出一层系统级别的弹窗,这层弹窗即是来电秀。
先来两张效果图:
下面来说下实现,因为商用的原因,不能直接贴代码,所以在这里,会贴一些比较核心的代码,大概分为五个步骤:
这是一个广播接收器,用来接收手机来电状态的,把接收到的状态发送给CallShowService服务来做相应的处理
CallShowService.class是一个来电秀服务(CallShowService extends Service),里面的主要核心代码是通过监听来电状态来做出相应的处理,如:弹屏
下面是CallShowService几个比较核心的代码:
CallShowView 来电秀界面 (CallShowView extends View),里面弹屏的核心代码:
在CallShowService的生命周期里面需要加上一句核心的代码,保证CallShowService不被进程杀死,如下:
这样来电秀算是基本实现了,简单的总结一下几个重要的点:
1、手机来电状态的监听拦截、
2、来去电弹屏、
3、开机启动保证弹屏服务不被后台杀死、