Android 5.0 InCallUI

  Android 5.0 对InCallUI界面进行了调整以适应Google的Material Design。

  下面来看一下来电的界面:

 


 


  在Android 5.0中,InCallUI加入了新的呈现方式即Immersive Mode,只要在非LockScreen界面来电,来电信息将显示为一个浮动通知。该通知是一个Heads-up类型的Notification,当触发时会在状态栏弹出以提示用户。任何一个Notification都可以采用Heads-up的方式显示,只需给Notification.builder设置FullScreenIntent属性:

[java] view plain copy
  1. builder.setFullScreenIntent(PendingIntent intent, boolean highPriority)  

       如果弹出Heads-up Notification时系统处于锁屏状态,NotificationMangerService会执行PendingIntent所指定的Action。如:锁屏时来电则会启动InCallActivity,又因为InCallActivity具有以下属性:

[java] view plain copy
  1. getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);  
因此,锁屏会被解除并显示InCallActivity。

  

Android 5.0 InCallUI_第1张图片


  Android 5.0 Telephony Phone无论从UI还是架构上都与之前相差很大。架构上的差异主要体现在新增了Telecom Service和Telecom Framework,所有的通话数据业务的处理从Telephony Service转移Telecom中。UI上的差异主要是适应Android 5.0 新引入的Material Design,并引入了Heads-up Notification来电界面。

       架构的变化也导致了MO/MT流程的变更,新流程相较于原来更加复杂,但各个子模块更加独立。如InCallUI仅仅依赖于Framework,如果Framewrok公开相应的接口(Call/Phone/InCallServiced等),三方APP可以轻松实现InCallUI的功能。

       虽然Android 5.0 Telephony Phone架构变得更加复杂,不过代码中仍然有部分接口并未使用,或许Google在后续的版本更新中还会进一步改进。

 

你可能感兴趣的:(android,it)