Android 7.1 新功能之一就是 App Shortcuts(應(yīng)用快捷方式) ,該功能與 iPhone 上的 3D Touch 功能相似,通過長(zhǎng)按應(yīng)用圖標(biāo),可彈出應(yīng)用快捷方式,點(diǎn)擊可以直接跳轉(zhuǎn)到相應(yīng)的界面。目前最多支持 5 個(gè)快捷方式,可以 getMaxShortcutCountPerActivity() 查看 Launcher 最多支持幾個(gè)快捷方式,不同的是 Android 支持通過拖拽將快捷方式固定到桌面。

看似美好,其實(shí)應(yīng)用快捷方式還是有很多缺陷的:

  1. 只能在 Google 的 Nexus 及 Pixel 設(shè)備上使用
  2. 系統(tǒng)必須是 Android 7.1 及以上(API Level >= 25)
  3. 已經(jīng)被用戶固定到桌面的快捷方式必須得到兼容性處理,因?yàn)槟慊旧鲜チ藢?duì)其控制,除了升級(jí)時(shí)禁用

Launcher applications allow users to "pin" shortcuts so they're easier to access. Both manifest and dynamic shortcuts can be pinned. Pinned shortcuts cannot be removed by publisher applications; they're removed only when the user removes them, when the publisher application is uninstalled, or when the user performs the "clear data" action on the publisher application from the device's Settings application.
However, the publisher application can disable pinned shortcuts so they cannot be started. See the following sections for details.

應(yīng)用快捷方式可分為 Static Shortcuts(靜態(tài)快捷方式) 和 Dynamic Shortcuts(動(dòng)態(tài)快捷方式) 兩種。

  • 靜態(tài)快捷方式:又名 Manifest Shortcuts,在應(yīng)用安裝時(shí)創(chuàng)建,不能實(shí)現(xiàn)動(dòng)態(tài)修改,只能通過應(yīng)用更新相應(yīng)的 XML 資源文件才能實(shí)現(xiàn)更新。
  • 動(dòng)態(tài)快捷方式:應(yīng)用運(yùn)行時(shí)通過 ShortcutManager 實(shí)現(xiàn)動(dòng)態(tài)添加、刪除、禁用等操作。

下面分別來講述如何創(chuàng)建靜態(tài)快捷方式和動(dòng)態(tài)快捷方式。

創(chuàng)建靜態(tài)快捷方式