MIUI 10 通知栏快捷开关 (Quick Settings Tile) 适配说明

快捷开关 (Quick Settings Tile) 是 Android 7.0 引入的新功能,支持开发者自定义通知栏快捷开关。任何开发者都可以注册快捷开关,然后会出现在开关编辑面板中,如下图:

1. 什么是通知栏快捷开关 (Quick Settings Tile)

快捷开关 (Quick Settings Tile) 是 Android 7.0 引入的新功能,支持开发者自定义通知栏快捷开关。任何开发者都可以注册快捷开关,然后会出现在开关编辑面板中,如下图:

MIUI 10 通知栏快捷开关 (Quick Settings Tile) 适配说明

 为了放下更多的快捷开关,MIUI 10 开关面板支持左右横滑,也不限制快捷开关的数量。用户也可以自由排序这些开关,比如放在最后或放在最前面,如下图:

MIUI 10 通知栏快捷开关 (Quick Settings Tile) 适配说明

点击开关的行为,由开方者自行定义,可以直接开启某功能,或者直接跳转到某一页面,如下图:

MIUI 10 通知栏快捷开关 (Quick Settings Tile) 适配说明

2. 如何适配通知栏快捷开关 (Quick Settings Tile)

可以参考官方文档中以下两章的内容:

  1. Tile: https://developer.android.com/reference/android/service/quicksettings/Tile
  2. 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/tile_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)。

快捷开关示例(矢量 + 纯白 + 透明背景):

MIUI 10 通知栏快捷开关 (Quick Settings Tile) 适配说明

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 最新开发版即可,支持的机型和下载链接如下(找到对应机型的最新开发版):

编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12261/

部分内容来自网络投稿,如有侵权联系立删

(0)
上一篇 2022年11月24日 上午11:46
下一篇 2022年11月24日 上午11:49

相关推荐