Android App Shortcuts

簡介

Android 7.1允許您定義應用程序中特定操作的快捷方式。這些快捷鍵可以顯示桌面,例如Nexus和Pixel設備。快捷鍵可讓您的用戶在應用程序中快速啟動常見或推薦的任務。

每個快捷鍵引用一個或多個意圖,每個意圖在用戶選擇快捷方式時在應用程序中啟動特定操作。可以表達為快捷方式的操作示例包括:

在跳轉頁面時將用戶導航到特定位置。

在通訊應用程式中傳送訊息給朋友。

在媒體應用中播放電視節目的下一集。

在遊戲應用程序中載入最後一個保存點。

App Shortcuts,一次最多可為您的應用發布4個快捷方式,當超過4個時,只顯示最新四個,動態添加會拋Max number of dynamic shortcuts exceeded。但是,用戶可以將應用的快捷方式複製到啟動器上,從而創建固定的快捷方式。用戶可以創建和訪問無限數量的固定快捷方式,以觸發應用中的操作。

更多介紹:developer.android.com/p

效果預覽

由於知乎專欄不支持gif圖,請點擊查看效果圖

說明:需要長按桌面圖標,然後就可以定義進入自己想要的頁面了

由於知乎專欄不支持gif圖,請點擊查看效果圖

說明:可以長按拖出創建一個固定的快捷方式

使用方法

xml實現

1、AndroidManifest.xml

啟動頁,添加meta-data標籤

<activityn android:name=".MainActivity"n android:label="@string/app_name"n android:screenOrientation="portrait">n <intent-filter>n <action android:name="android.intent.action.MAIN"/>n <category android:name="android.intent.category.LAUNCHER"/>n </intent-filter>n <meta-datan android:name="android.app.shortcuts"n android:resource="@xml/shortcuts"/>n</activity>n

2、res/xml/shortcuts.xml

http://schemas.android.com/apk/res/android">n <shortcutn android:enabled="true"n android:icon="@drawable/ic_content_copy_24dp"n android:shortcutDisabledMessage="@string/shortcut_disabled_message1"n android:shortcutId="shortcutId1"n android:shortcutLongLabel="@string/shortcut_long_label1"n android:shortcutShortLabel="@string/shortcut_short_label1">n <intentn android:action="action1"n android:targetClass="com.wuxiaolong.designsupportlibrarysample.AppShortcutsActivity"n android:targetPackage="com.wuxiaolong.designsupportlibrarysample"/>n </shortcut>n <shortcutn android:enabled="true"n android:icon="@drawable/ic_share_24dp"n android:shortcutDisabledMessage="@string/shortcut_disabled_message1"n android:shortcutId="shortcutId2"n android:shortcutLongLabel="@string/shortcut_long_label2"n android:shortcutShortLabel="@string/shortcut_short_label2">n <intentn android:action="action2"n android:targetClass="com.wuxiaolong.designsupportlibrarysample.BottomNavigationActivity"n android:targetPackage="com.wuxiaolong.designsupportlibrarysample"/>n </shortcut>nn</shortcuts>n

說明:android:shortcutLongLabel和android:shortcutShortLabel,顯示文本,默認顯示long,當long很長,就顯示short;android:targetClass跳轉的頁面;android:targetPackage包名

代碼實現

添加App Shortcuts

ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);nShortcutInfo shortcut = new ShortcutInfo.Builder(mActivity, "shortcutId3")n .setShortLabel("Web site")n .setLongLabel("Open the web site")n .setIcon(Icon.createWithResource(mActivity, R.drawable.ic_link_24dp))n .setIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("吳小龍同學")))n .build();ntry {n shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));n} catch (Exception e) {n e.printStackTrace();n}n

刪除App Shortcuts

ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);nList<ShortcutInfo> shortcutInfoList = shortcutManager.getDynamicShortcuts();//可以做個list管理App Shortcuts,這裡略nList<String> list = new ArrayList<>();nlist.add("shortcutId3");ntry {n shortcutManager.removeDynamicShortcuts(list);n} catch (Exception e) {n e.printStackTrace();n}n

隱藏App Shortcuts

ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);n List<String> list = new ArrayList<>();n list.add("shortcutId3");n try {n shortcutManager.disableShortcuts(list);n } catch (Exception e) {n e.printStackTrace();n }n

這樣就實現了App Shortcuts效果了

源碼

GitHub - WuXiaolong/DesignSupportLibrarySample: Android DesignSupportLibrary實例

感謝

developer.android.com/p

github.com/pcevikogulla

最後

App Shortcuts只能在Android 7.1手機才有的效果,很炫很便捷,也不知道國內手機什麼時候能看到App Shortcuts真容。

聯繫我

我的微信公眾號:吳小龍同學,歡迎關注交流~


推薦閱讀:

探究android:largeHeap
返回、向上和關閉
Android NDK 入門與實踐

TAG:Android | Android开发 | MaterialDesign |