Android - 快捷方式
簡介
幫助使用者快速啟動應用程式中的常見或推薦功能
建立方式
- 靜態快捷方式:在打包到APK或應用包中的資原始檔中定義。適合在使用者與應用程式互動的整個生命週期內使用一致結構連結到內容的應用程式,即固定功能,固定跳轉的頁面。
- 動態快捷方式:只能在執行時由應用釋出,更新和刪除(靜態和動態加在一起最多四個,因為大多數啟動器只能顯示四個)。用於上下文相關的應用程式中的操作,快捷方式將需要經常更新。
- 固定快捷方式:如果使用者授予許可,則可以在執行時將固定的快捷方式新增到受支援的啟動器中(無數量限制)。該方式生成的快捷方式內容一般由使用者驅動,比如瀏覽器生成特定網頁的快捷方式、遙控器生成特定裝置的快捷方式。
使用
- 靜態快捷方式
- 在res下新建xml資料夾,然後新建檔案作為靜態快捷方式配置檔案,這邊新建的檔名叫shortcuts.xml,填寫快捷方式相關配置
<?xml version="1.0" encoding="utf-8"?>
<!--根標籤是shortcuts代表一堆快捷方式-->
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
<!--每個shortcut標籤代表一個快捷方式-->
<shortcut
<!--必須值:ID值,後面動態時可通過這個ID控制該快捷方式的顯示或隱藏,不可以使用String資原始檔裡面的值引入-->
android:shortcutId="play"
<!--必須值:顯示快捷方式後的簡短描述,長度不超過10個字元-->
android:shortcutShortLabel="@string/play_shortcut_short_label"
<!--可選值:擴充套件短語,有足夠空間才展示,長度不超過25個字元-->
android:shortcutLongLabel="@string/play_shortcut_long_label"
<!--可選值:預設true,如果設定為false,使用者點選該快捷方式時無效,這時最好配置shortcutDisabledMessage告訴使用者為什麼無效-->
android:enabled="true"
<!--可選值:當該快捷方式無效時提示文字,enabled為true不起作用-->
android:shortcutDisabledMessage="@string/play_disabled_message"
<!--可選值:快捷方式的圖示-->
android:icon="@drawable/video">
<!--使用者點選該快捷方式發生的意圖-->
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.dean.smartApp"
android:targetClass="com.dean.smartApp.MainActivity">
<!--通過intent意圖裡面配置extra來告訴MainActivity需要展示的fragment-->
<extra
android:name="shortcut"
android:value="play"/>
</intent>
<!--為應用程式的快捷方式執行的操作型別提供分組,例如建立新的聊天訊息-->
<categories android:name="android.shortcut.conversation" />
</shortcut>
<shortcut
android:shortcutId="music"
android:enabled="true"
android:icon="@drawable/music"
android:shortcutShortLabel="@string/music_shortcut_short_label"
android:shortcutLongLabel="@string/music_shortcut_long_label"
android:shortcutDisabledMessage="@string/music_disabled_message">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="com.dean.smartApp"
android:targetClass="com.dean.smartApp.MainActivity">
<extra
android:name="shortcut"
android:value="music"/>
</intent>
<categories android:name="android.shortcut.conversation" />
</shortcut>
</shortcuts>
- 在Manifest啟動Activity下新增配置檔案
<activity android:name=".MainActivity">
<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>
- 動態快捷方式
使用該方式可以引導使用者自定義快捷方式以快速開啟某個頁面
- 新建快捷方式,這邊方法和上面xml中差不多
ShortcutInfo shortcut = new ShortcutInfo.Builder(context, "play")
.setShortLabel("高清影視")
.setLongLabel("16K高清,不一樣的體驗")
.setIcon(Icon.createWithResource(context, R.drawable.icon_shortcut_play))
.setIntent(playIntent)
.build();
- 更新快捷方式列表
//通過SystemService獲取Shortcut管理類
ShortcutManager shortcutManager = getSystemService(ShortcutManager.class);
//通過setDynamicShortcuts替換原有整個快捷方式列表
shortcutManager.setDynamicShortcuts(Arrays.asList(shortcut));
//也可以通過addDynamicShortcuts來增加一些快捷方式
shortcutManager.addDynamicShortcuts(Arrays.asList(shortcut));
//也可以通過updateShortcuts來更新原有的快捷方式列表
shortcutManager.updateShortcuts(Arrays.asList(shortcut));
//移除所有快捷方式
shortcutManager.removeAllDynamicShortcuts();
//通過ID刪除指定的快捷方式
shortcutManager.removeDynamicShortcuts(shortcutIds);
- 固定快捷方式
Android 8.0(API級別26)及更高版本上支援
- 第一種:之前靜態和動態建立的快捷方式,在桌面長按應用圖示會顯示快捷方式列表,這時長按列表某一項然後拖動到桌面空白位置即可。
- 第二種:程式碼建立
//獲取ShortcutManager
ShortcutManager shortcutManager =
context.getSystemService(ShortcutManager.class);
//通過isRequestPinShortcutSupported來判斷當前裝置是否支援固定快捷方式
if (shortcutManager.isRequestPinShortcutSupported()) {
//拿到需要固定的快捷方式,可以是之前靜態或動態建立好的
ShortcutInfo pinShortcutInfo =
new ShortcutInfo.Builder(context, "play").build();
//建立一個意圖
Intent pinnedShortcutCallbackIntent =
shortcutManager.createShortcutResultIntent(pinShortcutInfo);
//和其他系統控制元件互動一樣需要延時意圖PendingIntent
PendingIntent successCallback = PendingIntent.getBroadcast(context,0,pinnedShortcutCallbackIntent,0);
//建立固定快捷方式
shortcutManager.requestPinShortcut(pinShortcutInfo,successCallback.getIntentSender());
}
相關文章
- Android快捷方式-ShortcutsAndroid
- Android快捷方式解密Android解密
- Android studio快捷方式【 游標返回/前進被佔用】Android
- Android 7.0新特性——桌面長按圖示出現快捷方式Android
- android隨筆:長按APP圖示彈出快捷方式(shortcuts)AndroidAPP
- C#快捷方式C#
- manjaro 新增tash 快捷方式JAR
- 番茄助手快捷方式
- win10怎麼建立快捷方式_windows10建立桌面快捷方式的方法Win10Windows
- 網頁快捷方式怎麼設定_win10如何建立網頁桌面快捷方式網頁Win10
- ABAP Netweaver和git的快捷方式Git
- ubuntu22.04建立idea快捷方式UbuntuIdea
- win10清理無效快捷方式方法 win10怎麼清理無效快捷方式Win10
- Win7 .lnk快捷方式被繫結到以wps開啟導致所有快捷方式失效Win7
- 使用VBS建立快捷方式的程式碼
- Flutter —快速開發的IDE快捷方式FlutterIDE
- Photoshop 中各種快捷方式整理分享
- 如何在Mac桌面設定快捷方式?Mac
- win10怎麼建立桌面快捷方式_win10新增程式快捷方式到桌面的步驟Win10
- win10去掉快捷方式箭頭怎麼操作 win10取消桌面快捷方式箭頭方法Win10
- win10傳送到桌面快捷方式的方法_win10系統怎麼傳送到桌面快捷方式Win10
- win10 去掉快捷方式的箭頭方法 win10怎麼去掉快捷方式圖示箭頭Win10
- win10怎麼刪除快捷方式箭頭_win10去掉桌面快捷方式箭頭步驟Win10
- linux技巧---為各應用建立快捷方式Linux
- mac版1Password快捷方式彙總!Mac
- Mac|技巧:Mac電腦如何建立快捷方式?Mac
- win10如何把網頁新增到桌面快捷方式_win10網頁設定桌面快捷方式的方法Win10網頁
- win10字型如何通過快捷方式安裝_win10下怎麼安裝字型快捷方式Win10
- win10字型如何透過快捷方式安裝_win10下怎麼安裝字型快捷方式Win10
- win10 關閉快捷方式箭頭方法 win10怎麼關閉了快捷方式上的箭頭Win10
- VS Code 快捷方式所指的專案“Code.exe”已經更改或移動,因此該快捷方式無法正常工作
- win10軟體桌面快捷方式不見了怎麼恢復_win10快捷方式不見了如何處理Win10
- 兩種 cp 命令的絕佳用法的快捷方式
- 教你如何在Linux中設定快捷方式圖示Linux
- Robot Framework-Ride建立桌面快捷方式(最簡單!)FrameworkIDE
- 如何在 Ubuntu 桌面手動新增應用快捷方式Ubuntu
- Windows10如何去除快捷方式的小箭頭Windows
- JavaFx 建立快捷方式及設定開機啟動Java