簡介
Android 7.1允許您定義應用程式中特定操作的快捷方式。這些快捷鍵可以顯示桌面,例如Nexus和Pixel裝置。快捷鍵可讓您的使用者在應用程式中快速啟動常見或推薦的任務。
每個快捷鍵引用一個或多個意圖,每個意圖在使用者選擇快捷方式時在應用程式中啟動特定操作。可以表達為快捷方式的操作示例包括:
在跳轉頁面時將使用者導航到特定位置。
在通訊應用程式中傳送訊息給朋友。
在媒體應用中播放電視節目的下一集。
在遊戲應用程式中載入最後一個儲存點。
App Shortcuts,一次最多可為您的應用釋出4個快捷方式,當超過4個時,只顯示最新四個,動態新增會拋Max number of dynamic shortcuts exceeded。但是,使用者可以將應用的快捷方式複製到啟動器上,從而建立固定的快捷方式。使用者可以建立和訪問無限數量的固定快捷方式,以觸發應用中的操作。
更多介紹:developer.android.com/preview/sho…
效果預覽
說明:需要長按桌面圖示,然後就可以定義進入自己想要的頁面了
說明:可以長按拖出建立一個固定的快捷方式
使用方法
xml實現
1、AndroidManifest.xml
啟動頁,新增meta-data標籤
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<meta-data
android:name="android.app.shortcuts"
android:resource="@xml/shortcuts"/>
</activity>複製程式碼
2、res/xml/shortcuts.xml
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<shortcut
android:enabled="true"
android:icon="@drawable/ic_content_copy_24dp"
android:shortcutDisabledMessage="@string/shortcut_disabled_message1"
android:shortcutId="shortcutId1"
android:shortcutLongLabel="@string/shortcut_long_label1"
android:shortcutShortLabel="@string/shortcut_short_label1">
<intent
android:action="action1"
android:targetClass="com.wuxiaolong.designsupportlibrarysample.AppShortcutsActivity"
android:targetPackage="com.wuxiaolong.designsupportlibrarysample"/>
</shortcut>
<shortcut
android:enabled="true"
android:icon="@drawable/ic_share_24dp"
android:shortcutDisabledMessage="@string/shortcut_disabled_message1"
android:shortcutId="shortcutId2"
android:shortcutLongLabel="@string/shortcut_long_label2"
android:shortcutShortLabel="@string/shortcut_short_label2">
<intent
android:action="action2"
android:targetClass="com.wuxiaolong.designsupportlibrarysample.BottomNavigationActivity"
android:targetPackage="com.wuxiaolong.designsupportlibrarysample"/>
</shortcut>
</shortcuts>複製程式碼
說明:android:shortcutLongLabel和android:shortcutShortLabel,顯示文字,預設顯示long,當long很長,就顯示short;android:targetClass跳轉的頁面;android:targetPackage包名
程式碼實現
新增App Shortcuts
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
ShortcutInfo shortcut = new ShortcutInfo.Builder(mActivity, "shortcutId3")
.setShortLabel("Web site")
.setLongLabel("Open the web site")
.setIcon(Icon.createWithResource(mActivity, R.drawable.ic_link_24dp))
.setIntent(new Intent(Intent.ACTION_VIEW, Uri.parse("http://wuxiaolong.me/")))
.build();
try {
shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));
} catch (Exception e) {
e.printStackTrace();
}複製程式碼
刪除App Shortcuts
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
List<ShortcutInfo> shortcutInfoList = shortcutManager.getDynamicShortcuts();//可以做個list管理App Shortcuts,這裡略
List<String> list = new ArrayList<>();
list.add("shortcutId3");
try {
shortcutManager.removeDynamicShortcuts(list);
} catch (Exception e) {
e.printStackTrace();
}複製程式碼
隱藏App Shortcuts
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
List<String> list = new ArrayList<>();
list.add("shortcutId3");
try {
shortcutManager.disableShortcuts(list);
} catch (Exception e) {
e.printStackTrace();
}複製程式碼
這樣就實現了App Shortcuts效果了。
原始碼
感謝
官方文件
pcevikogullari/AndroidShortcuts
最後
App Shortcuts只能在Android 7.1手機才有的效果,很炫很便捷,也不知道國內手機什麼時候能看到App Shortcuts真容。
微信公眾號
我的公眾號:吳小龍同學,歡迎微信掃一掃關注。