1. 什么是通知栏快捷开关 (Quick Settings Tile)
快捷开关 (Quick Settings Tile) 是 Android 7.0 引入的新功能,支持开发者自定义通知栏快捷开关。任何开发者都可以注册快捷开关,然后会出现在开关编辑面板中,如下图:
为了放下更多的快捷开关,MIUI 10 开关面板支持左右横滑,也不限制快捷开关的数量。用户也可以自由排序这些开关,比如放在最后或放在最前面,如下图:
点击开关的行为,由开方者自行定义,可以直接开启某功能,或者直接跳转到某一页面,如下图:
2. 如何适配通知栏快捷开关 (Quick SettinAPP封装gs Tile)
可以参考官方文档中以下两章的内容:
- Tile: https://developer.android.com/reference/android/service/quicksettings/Tile
- TileService: https://developer.android.com/reference/android/service/quicksettings/TileService
如果需要完整的讲解,可以参考这篇谷歌 Framework 工程师的博客:Quick Settings Tiles on Android 7.0(可能需要翻墙),现摘录重点如下:
2.1. 在 manifest 中声明 TileService ,示例如下
<service
android:name=".AwesomeTileService"
//快捷开关的图标
android:icon="@drawable/ic_tile_default"
//快捷开关的名称
android:label="@string/pdf生成apptile_name"
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
<intent-filter>
<action
android:name="android.service.quicksettings.action.QS_TILE"/>
</intent-filter>
</service>
2.2. 准备规范的快捷开关图标
如上所述,android:icon 是显示在通知栏的图标,有以下要求:
- 要求是 vector drawable 矢量格式(注意是矢量格式)。
- 图形必须是纯白色,透明背景,图形和功能有明显联系。
- 大小为 24 x 24 dp (注意单位不是 px)。
快捷开关示例(矢量 + 纯白 + 透明背景):
2.3. 注意以下交互细节
- 点击:开发者需要确认点击行为是什么,同时确认开关是否有二态变化,如果有,需要准备新的 vector drawable
- 长按:长按快捷开关,默认会跳转到应用信息页。但开发者可以指定跳转的落地页,通过给 ACTION_QS_TILE_PREFERENCES 增加一个 <intent-filter> 来实现。
- 自动更新:系统支持开发者更新开关的 UI,一个应用场景是“天气刷新”。开发者视业务需求酌情使用吧。
3. FAQ
3.1. 第三方快捷开关,默认会出现在第一屏吗
不会。第三方快捷开关,默认都会是未添加的状态,只有用户主动添加,才会出现在快捷开关面板中。
3.2. 这个功能对 Android 版本有依赖吗
有,必须是 Android 7.0 及以上的设备。
3.3. 这个功能 MIUI 9 支持吗
不支持,是 MIUI 10 新增的功能。
3.4. 这个功能区分国内版和海外版吗
不区分,只要是 MIUI 10 就支持。
3.5. 如何判断 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
3.6. 如何测试
升级到 MIUI 10 最新开发版即可,支持的机型和下载链接如下(找到对应机型的最新开发版):
- 国内版 ROM:https://www.miui.com/download.html
- 国际版 ROM:http://en.miui.com/download.html
编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12261/
部分内容来自网络投稿,如有侵权联系立删