Android 5.0 对InCallUI界面进行了调整以适应Google的Material Design。
下面来看一下来电的界面:
在Android 5.0中,InCallUI加入了新的呈现方式即Immersive Mode,只要在非LockScreen界面来电,来电信息将显示为一个浮动通知。该通知是一个Heads-up类型的Notification,当触发时会在状态栏弹出以提示用户。任何一个Notification都可以采用Heads-up的方式显示,只需给Notification.builder设置FullScreenIntent属性:
- builder.setFullScreenIntent(PendingIntent intent, boolean highPriority)
如果弹出Heads-up Notification时系统处于锁屏状态,NotificationMangerService会执行PendingIntent所指定的Action。如:锁屏时来电则会启动InCallActivity,又因为InCallActivity具有以下属性:
- getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
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在后续的版本更新中还会进一步改进。
本文深入探讨Android5.0中通话界面的调整与新架构变化,包括ImmersiveMode、Heads-upNotification及MaterialDesign的引入,以及架构上的重大调整,如TelecomService和TelecomFramework的加入。

1万+

被折叠的 条评论
为什么被折叠?



