Android 实现仿360来电秀的功能

公司项目中需要实现当有电话进来时,在来电界面显示这个手机号码的一些信息。

需要解决两个问题: 1、悬浮窗的问题    2、后台服务保活的问题

悬浮窗需要在解锁的状态下弹出,在锁屏的状态下也需要弹出。

问题解决办法 : 使用FloatWindow这个框架来解决悬浮窗的问题,感谢作者  yhaolpz 的无私奉献, 地址 :https://github.com/yhaolpz/FloatWindow

具体使用方法可以去Github上查看,这样悬浮的问题解决了,刚开始是在Application中创建的悬浮窗显示没有问题,在service中创建完成之后需要调用一次

FloatWindow.get().show();

这样才会显示出悬浮窗,由于项目进度问题 具体没有细究。 这样在检测到手机来电状态时可以显示出悬浮窗

//响铃
case TelephonyManager.CALL_STATE_RINGING:

在这个响铃状态下进行创建FloatWindow的操作  进行View 的创建。在没有锁屏的状态下是可以弹出的。但是在锁屏的状态下是弹不出来的,需要下载源码在FloatPhone 中 修改

mLayoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
        | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
        | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
        | WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;

加上了WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED

这样就可以在锁屏的状态下弹出悬浮窗了,   悬浮窗的权限需要加上。

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

2、在锁屏的状态下可以弹出悬浮窗但是会被来电界面盖住,观察360来电秀的操作,我们可以在检测到来电时进行延时操作,让线程休眠一秒钟再弹出 ,这样就可以解决被来电界面盖住的问题。

3、后台保活的问题使用网上的方法。

 

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页