Android App Shortcuts
簡介
Android 7.1允許您定義應用程序中特定操作的快捷方式。這些快捷鍵可以顯示桌面,例如Nexus和Pixel設備。快捷鍵可讓您的用戶在應用程序中快速啟動常見或推薦的任務。
每個快捷鍵引用一個或多個意圖,每個意圖在用戶選擇快捷方式時在應用程序中啟動特定操作。可以表達為快捷方式的操作示例包括:在跳轉頁面時將用戶導航到特定位置。在通訊應用程式中傳送訊息給朋友。
在媒體應用中播放電視節目的下一集。在遊戲應用程序中載入最後一個保存點。App Shortcuts,一次最多可為您的應用發布4個快捷方式,當超過4個時,只顯示最新四個,動態添加會拋Max number of dynamic shortcuts exceeded。但是,用戶可以將應用的快捷方式複製到啟動器上,從而創建固定的快捷方式。用戶可以創建和訪問無限數量的固定快捷方式,以觸發應用中的操作。
更多介紹:https://developer.android.com/preview/shortcuts.html
效果預覽
由於知乎專欄不支持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實例
感謝
https://developer.android.com/preview/shortcuts.html
https://github.com/pcevikogullari/AndroidShortcuts最後
App Shortcuts只能在Android 7.1手機才有的效果,很炫很便捷,也不知道國內手機什麼時候能看到App Shortcuts真容。
聯繫我
我的微信公眾號:吳小龍同學,歡迎關注交流~
推薦閱讀:
※探究android:largeHeap
※返回、向上和關閉
※Android NDK 入門與實踐
TAG:Android | Android开发 | MaterialDesign |