小米手机MIUI 10 媒体通知适配说明
1.媒体通知是什么
媒体通知(或称 Media template / Media style)是 Android 标准通知样式的一种,自 API 21(Android 5.0) 引入,方便用户直接控制媒体内容,常见于音乐类、广播类应用。
MIUI 10 完全兼容该通知样式,并调整了视觉风格,以符合系统风格,如下图(第一条通知)。
2. 为什么要用系统的媒体通知?
音乐类应用已经都有自己的「自定义通知」可以控制音乐,那为什么还要用系统的媒体通知?
调用系统的媒体通知,系统就能做针对性的优化,如:
- 正在播放的媒体通知默认置顶 + 默认展开为大视图。
- 正在播放的媒体通知默认会出现在锁屏上(置顶+大视图)。
这些都能让内容更充分地曝光,也有利于提升用户体验。
注:不同于原生 Android O 允许所有通知出现在锁屏上,MIUI 限制了出现在锁屏的通知类型,以减少用户打扰。如果需要出现在锁屏上,需要前往设置 – 通知和状态栏 – 通知管理,找到对应应用,开启‘’锁屏通知‘’。
3. 如何适配系统媒体通知
3.1 媒体通知的两种视图
媒体通知有两种视图,分别称为:
- 标准视图 / compact view:标准的通知高度,最多显示3个按钮(actions)。
- 大视图 / expanded view:面积更大,最多显示5个按钮。
3.2 适配媒体通知
MIUI 10的媒体通知,基于 Android O,以下是几个重要的接口:
- setLargeIcon():设置大图,一般为封面图。
- addAction:添加控件,最多5个。
- setShowActionsInCompactView(int):控制在 compact view 显示哪些控件。
- setMediaSession(MediaSession.Token):告知系统正在播放中,系统会将其置顶(若有多条媒体通知的话)
媒体通知代码示例如下:
Notification = new Notification.Builder()
.setContentTitle("Havana(feat.Young Thug")
.setContentText("Camila Cabello - Havana")
.setSmallIcon(mySmallIcon)
.setLargeIcon(album)
.addAction(previousAction)
.addAction(playAction可以生成app的网页)
.addAction(nextAction)
.addAction(playlistAction)
.addAction(favoriteAction)
.setOngoing(true)
.setStyle(newNotification.MediaStyle()
.setShowActionsInCompactView(1,2,3)
.setMediaSession(mySession)))
.build();
详细接口说明见官方文档:https://developer.android.com/reference/android/app/Notification.MediaStyle。
不过,以下接口在 MIUI 10 无法生效:
- setColorized(boolean)
- setColor
以上接口都可能会产生不协调的颜色,故暂时屏蔽。
4. FAQ
4.1. 如何判断 MIUI 版本
有以下方法:
android.os.SystemProperties.get("ro.miui.ui.version.code", "7");// 如果返回值是「8」,就是 MIUI 10
或
android.os.SystemProperties.get("ro.miui.ui.version.name", "");// 如果返回值是「V10」,就是 MIUI 10
4.2. 只有 MIUI 10 支持媒体通知吗
其实 MIUI 9 也支持媒体通知,但因为没有做好优化。所以,可以大体认为「只有 MIUI 10 支持媒体通知」,含国内版和国际版,且样式和逻辑统一。
4.3. 只要是 MIUI 10 就支持媒体通知吗?
是的。因为 Android 原生从 API 21 (android 5.0)就支持媒体通知了,详见 https://developer.android.com/reference/android/app/Notification.MediaStyle。而 MIUI 10 最低是兼容到 Android 6.0,所以只要是 MIUI 10就支持媒体通知。
4.4. MIUI 10 会禁用自定义通知吗
不会。但系统无法识别自定义通知的具体内容,只会当成普通通知处理。
4.5. MIUI 10 媒体通知的样式以后会变化吗
有可网站生成app软件能。主要取决于:
- Android 增加新的接口:我们后续会尽力兼容新的接口,并以此调整样式。
- 业务需求和用户反馈。
4.6. MIUI 以前自己做的锁屏音乐界面还有用吗
在 MIUI 10 上没有用了。由于那个页面的实现方式有较多问题,因此我们在 MIUI 10 上弃用了,改由在锁屏上显示媒体通知,来实现锁屏音乐控制的需求。
4.7. 第三方应用自己做的锁屏页面(如音乐类或运动类的覆盖式)还能用吗?
可以继续使用,MIUI 10 没有限制这个能力(不过前提是开启了「锁屏显示」的权限)。但我们不建议开发者做这么一个覆盖式的页面,因为用户体验很差,还是希望能够用媒体通知替代。
4.8. 如何测试
升级到 MIUI 10 最新开发版即可,支持的机型和下载链接如下(找到对应机型的最新开发版):
- 国内版 ROM:https://www.miui.com/download.html
- 国际版 ROM:http://en.miui.com/download.html
编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12250/
部分内容来自网络投稿,如有侵权联系立删